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
|
|
|
|
|
{
|
2021-12-22 21:00:11 +01:00
|
|
|
Image<uint16_t> NDVI(Image<uint16_t> redIm, Image<uint16_t> nirIm)
|
2021-08-23 00:52:42 +02:00
|
|
|
{
|
2021-12-22 21:00:11 +01:00
|
|
|
Image<uint16_t> out(redIm.width(), redIm.height(), 1);
|
2022-05-12 18:19:01 +02:00
|
|
|
for (size_t i = 0; i < redIm.size(); i++)
|
2021-08-23 00:52:42 +02:00
|
|
|
{
|
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-12-22 21:00:11 +01:00
|
|
|
Image<uint16_t> EVI2(Image<uint16_t> redIm, Image<uint16_t> nirIm)
|
2021-08-23 00:52:42 +02:00
|
|
|
{
|
2021-12-22 21:00:11 +01:00
|
|
|
Image<uint16_t> out(redIm.width(), redIm.height(), 1);
|
2022-05-12 18:19:01 +02:00
|
|
|
for (size_t i = 0; i < redIm.size(); i++)
|
2021-08-23 00:52:42 +02:00
|
|
|
{
|
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-12-22 21:00:11 +01:00
|
|
|
Image<uint16_t> EVI(Image<uint16_t> redIm, Image<uint16_t> nirIm, Image<uint16_t> blueIm)
|
2021-08-23 00:52:42 +02:00
|
|
|
{
|
2021-12-22 21:00:11 +01:00
|
|
|
Image<uint16_t> out(redIm.width(), redIm.height(), 1);
|
2022-05-12 18:19:01 +02:00
|
|
|
for (size_t i = 0; i < redIm.size(); i++)
|
2021-08-23 00:52:42 +02:00
|
|
|
{
|
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;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|