2017-08-02 127 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操作系统 –