cv2.imshow 图像窗口放置在可视屏幕之外
Posted
技术标签:
【中文标题】cv2.imshow 图像窗口放置在可视屏幕之外【英文标题】:cv2.imshow image window placement is outside of viewable screen 【发布时间】:2018-04-24 09:06:57 【问题描述】:我正在运行 python35 的 Anaconda 安装和 menpo 的 cv2 安装。
我遇到cv2.imshow()
在控制台(cmd、spyder、ipython)中将类似于下面的代码作为独立脚本和逐行运行时将图像窗口不一致地放置在可视屏幕之外的问题...
import cv2
img = cv2.imread('Image71.jpg',0)
cv2.startWindowThread()
cv2.namedWindow('image')
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
我也试过上面没有cv2.starWindowThread()
和cv2.namedWindow()
的结果相同。窗口出现在我的任务栏上但不在视图中,cv2.waitKey(0)
响应击键,并且我无法使用 Windows 10 的任何窗口排列快捷键(例如 alt+tab、Winkey +左等)。
我的操作系统是 Win10 版本 1709。
非常感谢任何帮助,谢谢!
【问题讨论】:
spy++之类的窗口查询软件对窗口的可见性和坐标有什么说法? 我对spy++不熟悉。当为 cv2.imshow() 打开的窗口打开“Windows 属性”时,在“样式”选项卡下:“窗口样式:14CB0000”和“WS_VISIBLE”被列出。在“常规”选项卡下“矩形:(2400, 185)-(4345, 1290), 1945x1105;恢复的矩形:(2400, 185)-(4345, 1290), 1945x1105;客户端矩形:(10, 39)-( 1935、1095)、1925x1056"。我再次对 spy++ 不熟悉。希望这个澄清是你要问的,@ivan_pozdeev。 【参考方案1】:img = cv2.imread("test.png")
winname = "Test"
cv2.namedWindow(winname) # Create a named window
cv2.moveWindow(winname, 40,30) # Move it to (40,30)
cv2.imshow(winname, img)
cv2.waitKey()
cv2.destroyAllWindows()
【讨论】:
【参考方案2】:Kinght 将答案封装在一个函数中,以便于调用
def showInMovedWindow(winname, img, x, y):
cv2.namedWindow(winname) # Create a named window
cv2.moveWindow(winname, x, y) # Move it to (x,y)
cv2.imshow(winname,img)
img = cv2.imread('path.png')
showInMovedWindow('named_window',img, 0, 200)
【讨论】:
以上是关于cv2.imshow 图像窗口放置在可视屏幕之外的主要内容,如果未能解决你的问题,请参考以下文章
为啥在 Jupyter 笔记本中调用 cv2.imshow() 时出现无响应窗口