解决了opencv 2.4.7,python 2.7.6,OS X Mavericks中的情节问题

时间:2014-02-17 17:35:07

标签: python opencv osx-mavericks

我已经使用brew安装了python,opencv和一大堆依赖项。在大多数情况下,一切都有效。我遇到问题的地方是尝试显示图像并与之互动。

如果我这样做:

import cv2
im=cv2.imread('myimage.jpg')
cv2.imshow('main',im)

然后图像显示,根本无法与它交互,因为操作系统将窗口标记为无响应(即,如果我鼠标悬停在窗口上,我会得到可怕的沙滩球)。我仍然可以使用cv2.destroyWindow('main')关闭窗口。

我的一个大问题是尝试显示太大而无法放在屏幕上的图像。在这里做一些阅读,我看到我需要安装qt,然后使用qt后端构建opencv。所以我酿造卸载opencv,我酿造安装qt,然后用--with-qt构建选项brew安装opencv。

现在,当我尝试进行该测试(或尝试使用cv2.namedWindow,这给我相同的结果)我得到一个窗口,顶部有一些按钮(一些方向箭头,一个磁盘图标等)和一个黑色的空内容窗口。没有显示任何图像。我还有沙滩球。这让我相信没有反应的问题......如果没有交互性,情节按钮就没用了,所以图像窗口的非交互性不能通过设计来实现。

1 个答案:

答案 0 :(得分:0)

测试第一个例子,我有一个立即消失的窗口。因此,当应该删除窗口时,您的程序可能已崩溃。当程序到达执行结束时,所有内容都会被清理并删除。

这为我修复了,无法测试qt版本,因为我没有安装qt的opencv。

cv2.waithkey(5)等待5 ms,然后返回按下的任意键的键代码。所以它不会越过while循环,直到按下它。

import cv2

im=cv2.imread('test.jpg')
cv2.imshow('main',im)

#find ascii key codes here  http://www.asciitable.com/
#Escape == 27
while (cv2.waitKey(5) != 27): pass