NDVI像素计算的值 - Python

时间:2018-02-01 07:39:58

标签: python pixels calculation

我正在尝试为蓝色滤镜图像(.jpg格式)的每个像素提取ndvi值数组。我使用了NDVI =(arrayR-arrayB)/(arrayR + arrayB),但结果我得到了一长串包含不同值的数组:

array([ 0.44554455, 0.48387097, 0.47368421, ..., 0.14 , 0.14285714, 0.14285714]), 
array([ 0.45454545, 0.49450549, 0.48387097, ..., 0.14583333, 0.13207547, 0.14583333]), 
array([ 0.48314607, 0.46391753, 0.45454545, ..., 0.14583333, 0.13461538, 0.14583333]), 
array([ 0.40186916, 0.44554455, 0.46938776, ..., 0.125 , 0.12280702, 0.18681319]), 
array([ 0.40540541, 0.46391753, 0.49473684, ..., 0.16666667, 0.16 , 0.16363636]), 
array([ 0.39823009, 0.42056075, 0.47474747, ..., 0.17021277, 0.20454545, 0.15789474]), 
array([ 0.51111111, 0.47916667, 0.46 , ..., 0.1588785 , 0.16831683, 0.16190476]),

用于获得这些结果的代码是:

from PIL import Image
from sense_hat import SenseHat
import numpy as numpy
img= Image.open('foo.jpg')
imgR, imgB, imgG = img.split() #get channels
arrR = numpy.asarray(imgR).astype('float64')
arrB = numpy.asarray(imgB).astype('float64')
num   = (arrR - arrB)
denom = (arrR + arrB)
if denom.any() == 0:    #preventing division by zero.
  denom = [0.000001, 0.000001]
arr_ndvi = num/denom

实际上每个像素的NDVI值是多少?它是每个数组中数字的平均值吗?

0 个答案:

没有答案