我正在用Tkinter创建一个图形界面来确定NDVI,我使用Opencv在植被中制作过滤器。到目前为止一切都很好。 当计算NDVI时,得到的图像是黑色的:(,您不能保存它,但是当您打印图像时,您会得到每个像素的值。在
代码
def ndvi(self,*args):
#self.res_guar esta en BGR
self.res_guar = self.res_guar.astype('float')
(self.r,self.g,self.b) = cv2.split(self.res_guar)
#Calculo NDVI
self.resta = cv2.subtract(self.r,self.b)
self.suma = cv2.add(self.r,self.b)
self.ndvi = cv2.divide(self.resta,self.suma)
self.rows,self.cols,_ = self.res_guar.shape
self.y = np.zeros((self.rows,self.cols,3),dtype=np.uint8) # for output
greenyellow = [4,255,173]
yellow = [0,255,255]
yellowred = [4,111,255]
green = [0,255,0]
blue = [255,0,0]
red = [0,0,255]
white = [255,255,255]
black = [0,0,0]
for i in range(self.rows):
for j in range(self.cols):
k = self.ndvi[i,j]
if 0.0 < k < 0.2 :
self.y[i,j] = yellowred
#print "Pintando AmarilloRojo"
break
elif 0.2 < k < 0.4 :
self.y[i,j] = yellow
#print "Pintando Amarillo"
break
elif 0.4 < k < 0.6 :
self.y[i,j] = greenyellow
#print "Pintando AmarilloVerde"
break
elif k > 0.6 :
self.y[i,j] = green
#print "Pintando Verde"
break
else:
self.y[i,j] = black
#print "Negro"
break
#Print Imagen resultante
print(self.y)
#Guardar Imagen
cv2.imwrite('NDVI.jpg',self.y)
#Mostrar Imagen
ndvi = Image.fromarray(self.y,'RGB').resize((570,650), Image.ANTIALIAS)
# convierte a formato ImageTk
ndvi = ImageTk.PhotoImage(ndvi)
# Ajuste de la imagen de hsv a tk etiqueta de imagen
self.original_img_lbl.configure(image=ndvi)
# adding a reference to the image to Prevent python's garbage collection from deleting it
#Anadiendo una referencia a la imagen para evitar que python garbage collection lo elimine
self.original_img_lbl.image = ndvi
图像原稿 url=http://es.zimagez.com/zimage/capturadepantallade2016-12-2310-08-43.php
起诉 url=http://es.zimagez.com/zimage/capturadepantallade2016-12-2310-09-33.php
NDVI指数 url=http://es.zimagez.com/zimage/capturadepantallade2016-12-2310-09-40.php
打印self.y
^{pr2}$NDVI图像已保存 url=http://es.zimagez.com/zimage/ndvi.php
从您的
if
语句中取出所有break
语句。所发生的是您的if
语句更改了一个像素的值,但随后您break
for循环而没有写入其他像素。删除所有的break
语句,您应该没事。在相关问题 更多 >
编程相关推荐