2017-08-02 145 views
0

我看到是有可能重新調整窗口OpenCV的,例如:最小化的OpenCV HighGUI窗口

import cv2 
img = cv2.imread('Test.jpg') 
cv2.imshow('image',img) 
cv2.namedWindow('image',cv2.WINDOW_NORMAL) 
cv2.resizeWindow('image', 600,600) 
cv2.waitKey(0) 
cv2.destroyAllWindows() 

但有可能減少當前窗口?


我想這也許是cv2.setWindowProperty()此功能,例如這裏是全屏

cv2.namedWindow("window", cv2.WND_PROP_FULLSCREEN) 
cv2.setWindowProperty("window",cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_FULLSCREEN) 
cv2.imshow("window", img) 
+0

重複[最小化窗口與蟒蛇](https://stackoverflow.com/questions/45426203/minimize-window-with-python) - 只是因爲上一個問題沒有得到任何答案在24小時內不是一個創建重複的理由。改進原版,還是耐心等待。 –

+0

@DanMašek我認爲這不是重複的,因爲我需要這個openCV。重複的問題是不要求openCV函數。 –

+0

@DanMašek你知道任何針對Linux或僅適用於Windows的答案嗎? –

回答

1

那麼,有OpenCV的官方文檔中沒有的功能/方法自動最小化窗口。你可以用python嘗試不同的方法來完成任務。這種方法可以在這裏找到:Is there a way to minimize a window in Windows 7 via Python 3?

雖然我在這裏張貼太爲完整的參考:

爲了減少你需要知道窗口的任意標題,或者它的窗口類的窗口。當確切窗口標題未知時,窗口類很有用。例如,下面的腳本顯示了兩種不同的方式,以儘量減少Microsoft Windows記事本應用假設:

import ctypes 

notepad_handle = ctypes.windll.user32.FindWindowW(None, "Untitled - Notepad") 
ctypes.windll.user32.ShowWindow(notepad_handle, 6) 

notepad_handle = ctypes.windll.user32.FindWindowW(u"Notepad", None) 
ctypes.windll.user32.ShowWindow(notepad_handle, 6) 

要確定類名稱的使用,您將需要使用的工具,如微軟的Spy ++。顯然,如果記事本是用一個文件打開的,它會有不同的標題,如test.txt - 記事本。如果是這種情況,第一個例子現在無法找到窗口,但第二個例子仍然可以工作。

如果兩份記事本正在運行,那麼只有一份會被關閉。如果需要關閉所有副本,則需要枚舉所有需要更多代碼的窗口。可以使用ShowWindow命令來恢復窗口。

+0

這樣的功能這個答案會更好,如果你用你提到的擴展了OP的腳本,這樣就有一個完整的例子來演示這個功能。現在你並沒有真正增加你提到的原始答案中所說的內容。 –

+0

感謝您的指點。我以爲我應該只寫這段代碼並重新啓動用戶。編輯:) –

+0

謝謝,但這是爲Windows。我需要我的Raspberry Pi運行在raspbian/Debian操作系統 –