我目前正在阅读图像并将其显示到窗口。我已成功完成此操作,但在显示图像后,窗口仅允许我看到完整图像的一部分。我尝试加载后保存图像,并保存了整个图像。所以我相当肯定它正在读取整个图像。Python - OpenCV - imread - 显示图像
imgFile = cv.imread('1.jpg')
cv.imshow('dst_rt', imgFile)
cv.waitKey(0)
cv.destroyAllWindows()
图片:
截图:
我目前正在阅读图像并将其显示到窗口。我已成功完成此操作,但在显示图像后,窗口仅允许我看到完整图像的一部分。我尝试加载后保存图像,并保存了整个图像。所以我相当肯定它正在读取整个图像。Python - OpenCV - imread - 显示图像
imgFile = cv.imread('1.jpg')
cv.imshow('dst_rt', imgFile)
cv.waitKey(0)
cv.destroyAllWindows()
图片:
截图:
貌似图片太大,窗口根本不适合屏幕。 使用cv2.WINDOW_NORMAL
标志创建窗口,它将使其具有可伸缩性。然后,你可以调整大小以适应你的屏幕是这样的:
from __future__ import division
import cv2
img = cv2.imread('1.jpg')
screen_res = 1280, 720
scale_width = screen_res[0]/img.shape[1]
scale_height = screen_res[1]/img.shape[0]
scale = min(scale_width, scale_height)
window_width = int(img.shape[1] * scale)
window_height = int(img.shape[0] * scale)
cv2.namedWindow('dst_rt', cv2.WINDOW_NORMAL)
cv2.resizeWindow('dst_rt', window_width, window_height)
cv2.imshow('dst_rt', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
According to the OpenCV documentationCV_WINDOW_KEEPRATIO
标志也应该这样做,但它没有,它甚至不是Python模块中提供价值。
这可以帮助你
namedWindow("Display window", CV_WINDOW_AUTOSIZE);// Create a window for display.
imshow("Display window", image); // Show our image inside it.
您正在使用旧版本(用于名为'cv2'的新模块)。尝试更新它。 – Igonato
对不起,我忘记提及我正在使用cv2作为cv。 –
这段代码看起来不错。你能告诉我们一个截图吗? – Igonato