OpenCv-cv2.imshow()显示图片不全

秋风阁——北溪入江流:https://focus-wind.com/
秋风阁——OpenCv-cv2.imshow()显示图片不全
问题: 在使用cv2.imshow()显示图片时,只能显示图片的部分内容,无法完全显示图片内容。

原因: 查看cv2.imshow()函数说明可知,opencv在使用cv2.imshow()显示图片时,是在指定窗口中显示图片,若在调用cv2.imshow()函数之前,没有调用创建窗口的函数,则默认使用cv2.WINDOW_AUTOSIZE标记创建默认窗口,如果需要显示大于屏幕分辨率的图像,则需要在使用cv2.imshow()之前调用cv2.namedWindow("", cv2.WINDOW_NORMAL)

imshow函数说明.png

If the window was not created before this function, it is assumed creating a window with cv::WINDOW_AUTOSIZE.
如果该窗口不是在此函数之前创建的,则假定使用cv::WINDOW_AUTOSIZE创建窗口。

If you need to show an image that is bigger than the screen resolution, you will need to call namedWindow(“”, WINDOW_NORMAL) before the imshow.
如果需要显示大于屏幕分辨率的图像,则需要在imshow之前调用namedWindow(“”, WINDOW_NORMAL)。

解决方法: 在使用cv2.imshow()之前,调用cv2.namedWindow()函数,设置显示窗口属性。


示例:
直接调用imshow()显示图片:

import cv2
import numpy as np

if __name__ == '__main__':
    img = cv2.imdecode(np.fromfile(r'C:\Users\focus\Pictures\背景图片\希望之鲸.jpg', dtype=np.uint8), cv2.IMREAD_COLOR)
    cv2.imshow('img', img)
    cv2.waitKey(0)

设置namedWindow():

import cv2
import numpy as np

if __name__ == '__main__':
    img = cv2.imdecode(np.fromfile(r'C:\Users\focus\Pictures\背景图片\希望之鲸.jpg', dtype=np.uint8), cv2.IMREAD_COLOR)
    cv2.namedWindow('img', cv2.WINDOW_NORMAL)
    cv2.imshow('img', img)
    cv2.waitKey(0)

你可能感兴趣的:(opencv,opencv,计算机视觉)