#python #opencv
#python #opencv
Вопрос:
Я пытаюсь получить NDVI изображения объекта. Я делаю это впервые, поэтому я не уверен, что предпринятые мной шаги верны. Во втором блоке я добавил цветовую карту к NIR-изображению, а затем разделил каналы, чтобы я мог использовать формулу NDVI для канала NIR и красного канала. В последнем блоке я применил формулу и построил изображение. Результирующие значения во втором блоке кажутся мне странными, но я не уверен, как проверить, правильно ли это.
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()
Комментарии:
1. Интересный вопрос, но что такое «NDVI»?
2. @YvesDaoust Привет! Это показатель состояния растения по отражаемому им свету. Хлорофилл поглощает видимый свет и отражает ближний инфракрасный свет. Поэтому, когда растения становятся нездоровыми, они начинают поглощать больше ближнего инфракрасного света. NDVI позволяет увидеть эти изменения, используя ближний инфракрасный свет и красный свет.