原因一:没有在cv2.imshow()后面加上这两句

cv2.waitKey(0)  
cv2.destroyAllWindows()

cv2.namedWindow('窗口名',0)
cv2.imshow('窗口名',image)
cv2.waitKey(0)  
cv2.destroyAllWindows()

原因二:

可能是因为你的原图太大,,导致只显示了一部分,没有完全显示出来,,,,

这也是我刚刚遇到的问题,找遍了全网都没有答案

最后发现居然是自己的图片太大,导致只显示了我的图片的一个角落,而我的这个图片角落刚好是黑色,,,还以为我的opencv不兼容了,差点就卸载重装

解决方法:调节窗口大小

(1)固定窗口大小(如400x300)

在imshow前面加上

cv2.namedWindow('窗口名', 0)
cv2.resizeWindow('窗口名', 400, 300)

注意:窗口名要一致,有几个窗口就要加几次这两行代码

举例如下:

import cv2
img=cv2.imread(‘5.jpg’,0)
rows,cols=img.shape
ret2,mask2  = cv2.threshold(img,23, 255,cv2.THRESH_OTSU | 1)
ret2,mask3 = cv2.threshold(img,0,255,1+ cv2.THRESH_OTSU)

cv2.namedWindow(“img”, 0)
cv2.namedWindow(“mask3”, 0)
cv2.namedWindow(“result_img”, 0)

cv2.resizeWindow(“mask3”, 400, 480)
cv2.resizeWindow(“mask2”,  400, 480)
cv2.resizeWindow(“img”,  400, 480)

cv2.imshow(“img”, img)
cv2.imshow(“mask3”, mask3)
cv2.imshow(“mask2”, mask2)

cv2.waitKey(0)  
cv2.destroyAllWindows()

(2)先不固定窗口大小

在cv2.imshow前面加上

cv2.namedWindow('窗口名', 0)

 

cv2.namedWindow('窗口名',1)  

1表示由电脑自动显示尺寸,但是在大图片的时候,由于电脑屏幕有限,只会显示一部分

 

cv2.namedWindow('窗口名',0)  

0表示可以手动调节显示尺寸

 

 

 

 

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐