问题描述:
在使用 OpenCV 读取并展示图片文件时,有时会出现图片显示不全的情况。
例如:有如下原图
在经过以下代码后:
import cv2
img = imread('img.jpg')
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
展示窗口中显示的图像如下:
显然,这并不是我们想要的效果,我们展示图像的目的就是为了能观察图像,而图像的显示不全与我们的意愿背道而驰。同时,我们也发现,展示窗口的尺寸很大,而且无法更改,这也是我们所不希望的。
解决方案:
在显示图像前,增加 namedWindow 指令:
import cv2
img = imread('img.jpg')
cv2.namedWindow('img', cv2.WINDOW_NORMAL)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
结果:
文章来源:https://uudwc.com/A/2Yxm8
注意:namedWindow 指令中的窗口名字必须与展示图像所用的窗口名字相等,否则则会在展示窗口外另显示一个空窗口,且展示窗口图像依然显示不全。另外,cv2.WINDOW_NORMAL参数等价于 cv2.WINDOW_FREERATIO 与 cv2.WINDOW_KEEPRATIO,这些参数使得图像能够适应窗口完全展示且支持窗口大小的调整。文章来源地址https://uudwc.com/A/2Yxm8