我正在编写一个用于测试opencv函数的小gui - 轻松更改参数值(用于阈值处理,blob检测等)。我开始使用tkinter编写gui并使用Image.fromarray函数获得更好的结果 - 我的图像获得蓝色色调;当我用cv2.imshow显示时,没有这样的色调,所以它必须是fromarry的神器,我blv。我按预期检查了模式及其RGB。图像对在斑点检测之前和之后(绘制小圆圈)。左边是opencv,右边是我的tkinter gui。
tk_img=Image.fromarray(newImg)
tk_photo=ImageTk.PhotoImage(tk_img)
mod=tk_img.mode
print('mode:'+str(mod))
label1 = Tkinter.Label(self, image=tk_photo)
label1.image = tk_photo
label1.grid(row = Imrow, column = Im2col, columnspan = Im2col, sticky=Tkinter.NW)
self.update()
cv2.imshow('orig', currentImg)
cv2.waitKey(0)
cv2.imshow('current', newImg)
cv2.waitKey(0)
cv2.destroyAllWindows()
答案 0 :(得分:2)
OpenCV使用BGR颜色顺序处理图像。您需要更改颜色顺序。
newImg = newImg[...,[2,1,0]]