2021-08-21 19:14:53 +02:00
|
|
|
#include "vegetation_index.h"
|
|
|
|
|
|
2021-08-23 00:52:42 +02:00
|
|
|
namespace image
|
|
|
|
|
{
|
|
|
|
|
namespace vegetation_index
|
|
|
|
|
{
|
|
|
|
|
cimg_library::CImg<unsigned short> NDVI(cimg_library::CImg<unsigned short> redIm, cimg_library::CImg<unsigned short> nirIm)
|
|
|
|
|
{
|
2021-08-21 19:14:53 +02:00
|
|
|
cimg_library::CImg<unsigned short> out(redIm.width(), redIm.height(), 1, 1);
|
2021-08-23 00:52:42 +02:00
|
|
|
for (unsigned int i = 0; i < redIm.size(); i++)
|
|
|
|
|
{
|
2021-08-21 19:14:53 +02:00
|
|
|
float red = redIm[i];
|
|
|
|
|
float nir = nirIm[i];
|
2021-08-23 00:52:42 +02:00
|
|
|
out[i] = (((nir - red) / (nir + red)) + 1) * 32726;
|
2021-08-21 19:14:53 +02:00
|
|
|
}
|
|
|
|
|
return out;
|
|
|
|
|
}
|
2021-08-23 00:52:42 +02:00
|
|
|
cimg_library::CImg<unsigned short> EVI2(cimg_library::CImg<unsigned short> redIm, cimg_library::CImg<unsigned short> nirIm)
|
|
|
|
|
{
|
2021-08-21 19:14:53 +02:00
|
|
|
cimg_library::CImg<unsigned short> out(redIm.width(), redIm.height(), 1, 1);
|
2021-08-23 00:52:42 +02:00
|
|
|
for (unsigned int i = 0; i < redIm.size(); i++)
|
|
|
|
|
{
|
2021-08-21 19:14:53 +02:00
|
|
|
float red = redIm[i];
|
|
|
|
|
float nir = nirIm[i];
|
2021-08-23 00:52:42 +02:00
|
|
|
out[i] = 2.5 * (((nir - red) / (nir + 2.4 * red + 1)) + 1) * 32726;
|
2021-08-21 19:14:53 +02:00
|
|
|
}
|
|
|
|
|
return out;
|
|
|
|
|
}
|
2021-08-23 00:52:42 +02:00
|
|
|
cimg_library::CImg<unsigned short> EVI(cimg_library::CImg<unsigned short> redIm, cimg_library::CImg<unsigned short> nirIm, cimg_library::CImg<unsigned short> blueIm)
|
|
|
|
|
{
|
2021-08-21 19:14:53 +02:00
|
|
|
cimg_library::CImg<unsigned short> out(redIm.width(), redIm.height(), 1, 1);
|
2021-08-23 00:52:42 +02:00
|
|
|
for (unsigned int i = 0; i < redIm.size(); i++)
|
|
|
|
|
{
|
2021-08-21 19:14:53 +02:00
|
|
|
float red = redIm[i];
|
|
|
|
|
float nir = nirIm[i];
|
|
|
|
|
float blue = blueIm[i];
|
2021-08-23 00:52:42 +02:00
|
|
|
out[i] = 2.5 * (((nir - red) / (nir + 6 * red - 7.5 * blue + 1)) + 1) * 32726;
|
2021-08-21 19:14:53 +02:00
|
|
|
}
|
|
|
|
|
return out;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|