2014-02-17 139 views
0

中出現問題我已經安裝了python,opencv和一系列使用brew的依賴項。大多數情況下,一切正常。我碰到問題的地方是試圖顯示圖像並與之交互。在opencv 2.4.7,python 2.7.6,OS X Mavericks

如果我做的:

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

然後圖像顯示,有沒有辦法在所有與它進行交互,因爲窗口被標記爲操作系統無響應(即,如果我將鼠標放在窗口,我得到了可怕的沙灘球)。我仍然可以使用cv2.destroyWindow('main')關閉窗口。

我的大問題是試圖顯示一個圖像太大,不適合在屏幕上。在這裏做一些閱讀,我看到我需要安裝qt,然後使用qt後端構建opencv。所以我沖泡卸載opencv,我沖泡安裝qt,然後用--with-qt構建選項沖泡安裝的opencv。我得到一個窗口,在頂部有一些按鈕(一些方向箭頭,一個磁盤圖標等),一個黑色的空白窗口內容窗口。永遠不會顯示圖像。我仍然有沙灘球。這導致我相信沒有反應能力存在一個問題......劇情按鈕沒有交互性是沒用的,所以圖像窗口的非交互性不能通過設計來實現。

回答

0

測試第一個例子,我得到了一個瞬間消失的窗口。因此,當窗口應該被移除時,您的程序可能已經崩潰。當程序到達執行結束時,所有的東西都被清理乾淨,並最終被移除。

這個修復了我的問題,無法測試qt版本,因爲我沒有安裝qt的opencv。

cv2.waithkey(5)等待5毫秒,然後返回任何按鍵的鍵碼。所以它不會通過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 
+0

我在交互式命令行中做了所有這些工作;不作爲腳本 – wrjohns

+0

將其測試爲腳本,並且所有內容都按預期行事。我很好奇它爲什麼不能像Python命令行中的交互式會話那樣工作。 – wrjohns