首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python - OpenCV - imread -显示图像

Python - OpenCV - imread -显示图像
EN

Stack Overflow用户
提问于 2013-10-10 09:23:18
回答 2查看 112.9K关注 0票数 33

我目前的工作是读取图像并将其显示到窗口。我已经成功地做到了这一点,但在显示图像时,窗口只允许我看到完整图像的一部分。我尝试在加载图像后保存它,它保存了整个图像。因此,我相当确定它正在读取整个图像。

代码语言:javascript
复制
imgFile = cv.imread('1.jpg')

cv.imshow('dst_rt', imgFile)
cv.waitKey(0)
cv.destroyAllWindows()

图片:

截图:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-17 09:39:18

看起来图像太大了,窗口根本不适合屏幕。创建带有cv2.WINDOW_NORMAL标志的窗口,这将使其具有可伸缩性。然后您可以调整它的大小以适合您的屏幕,如下所示:

代码语言:javascript
复制
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()

python CV_WINDOW_KEEPRATIO标志应该做同样的事情,但是它没有,它的值甚至没有出现在According to the OpenCV documentation模块中。

票数 36
EN

Stack Overflow用户

发布于 2018-03-23 06:11:36

在openCV中,每当您尝试显示一个超大的图像或比显示分辨率更大的图像时,都会得到裁剪后的显示结果。这是一种默认行为。

为了在您选择的窗口中查看图像,openCV鼓励使用命名窗口。请参考namedWindow documentation

函数namedWindow创建一个窗口,该窗口可用作图像和轨迹栏的占位符。创建的窗口通过它们的名称来引用。

cv.namedWindow(name, flags=CV_WINDOW_AUTOSIZE)每个窗口都与图像容器相关,名称为arg,请确保使用相同的名称

例如:

代码语言:javascript
复制
import cv2
frame = cv2.imread('1.jpg')
cv2.namedWindow("Display 1")
cv2.resizeWindow("Display 1", 300, 300)
cv2.imshow("Display 1", frame)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19285562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档