我正在尝试获取植物图像的NDVI。这是我第一次这样做,所以不确定执行的步骤是否正确。在第二个块中,我向NIR图像添加了一个色图,然后拆分了通道,以便可以对NIR通道和Red通道使用NDVI公式。在最后一个块中,我应用了公式并绘制了图像。第二个块中的结果值看起来有点像我,但是我不确定如何检查这是否正确。
import os
from PIL import Image
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np
from IPython.display import display
import cv2
import cmapy
img_path = os.getcwd() + "/plant.png"
img = Image.open(img_path)
plt.figure(figsize = (10,10))
test_img = img
plt.imshow(test_img)
test_img2 = cv2.imread(img_path)
img_c = cv2.applyColorMap(test_img2, cmapy.cmap('Reds')).astype(np.int)
_, R, NIR = cv2.split(img_c)
plt.figure(figsize = (10,10))
plt.imshow(img_c)
plt.show()
ndvi = (NIR-R)/(NIR+R+0.01)
print(ndvi.max()) 0.9999029220464032
print(ndvi.mean()) 0.10046810466714343
print(ndvi.min()) 0.01999960000799984
plt.figure(figsize = (10,10))
plt.imshow(ndvi)
plt.show()