OpenCV窗口始终位于顶部

2024-04-19 10:32:49 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有办法将OpenCV窗口设置为始终位于顶部? 我可以把最小化和关闭按钮从窗口中删除吗? 谢谢您。


Tags: 按钮opencv办法
3条回答

我发现我所需要做的就是将主窗口设置为全屏,然后恢复正常。

    #!/usr/bin/env python
    import cv2
    import numpy

    WindowName="Main View"
    view_window = cv2.namedWindow(WindowName,cv2.WINDOW_NORMAL)

    # These two lines will force your "Main View" window to be on top with focus.
    cv2.setWindowProperty(WindowName,cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_FULLSCREEN)
    cv2.setWindowProperty(WindowName,cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_NORMAL)

    # The rest of this does not matter. This would be the rest of your program.
    # This just shows an image so that you can see that this example works.
    img = numpy.zeros((400,400,3), numpy.uint8)
    for x in range(0,401,100):
        for y in range(0,401,100):
            cv2.line(img,(x,0),(0,y),(128,128,254),1)
            cv2.line(img,(x,399),(0,y),(254,128,128),1)
            cv2.line(img,(399,y),(x,399),(128,254,128),1)
            cv2.line(img,(399,y),(x,0),(254,254,254),1)
    cv2.imshow(WindowName, img)
    cv2.waitKey(0)
    cv2.destroyWindow(WindowName)

您可以使用: cvGetWindowHandle() 获取寡妇处理程序。然后使用普通的windows API你可以做任何你喜欢的事情

我在这里的评论中找到了最好的解决方案:Python OpenCV open window on top of other applications

只需在打开一个窗口后添加下面的命令,例如

cv2.namedWindow('img_file_name', cv2.WINDOW_NORMAL) # Creates a window
os.system('''/usr/bin/osascript -e 'tell app "Finder" to set frontmost of process "python" to true' ''') # To make window active

小写时使用“python”。正如我在一些答案中发现的那样,使用“Python”给了我一个错误:

21:62: execution error: Finder got an error: Can’t set process "Python" to true. (-10006))

相关问题 更多 >