【问题标题】:Python OpenCV - remove title bar, toolbar, and status barPython OpenCV - 删除标题栏、工具栏和状态栏
【发布时间】:2018-08-12 05:19:42
【问题描述】:

我找到了有关 C++ 的文档,但没有找到关于 python 的文档。

在python中显示的基本代码是:

import numpy as np
import cv2

# Load an color image in grayscale
img = cv2.imread('messi.jpg',0)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

显示下图。但是我该怎么转这个

看起来像这样?

我也想保持大小。所以我读过一些人说要“全屏”。我认为可能可行的唯一方法是“全屏显示,然后调整它的大小?虽然不确定这是否是一个解决方案(也试图找出如何做到这一点......我是OpenCV的新手)。

【问题讨论】:

    标签: python opencv


    【解决方案1】:

    cap2 = cv2.VideoCapture(0)
    cap2.set(3,320)
    cap2.set(4,200)
    
    ret2, image2 = cap2.read()
    cv2.imshow('frame2',image2)
    
    cv2.namedWindow('frame2',cv2.WND_PROP_FULLSCREEN)
    cv2.setWindowProperty('frame2', cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)

    我发现了一个窍门,放了

    cv2.namedWindow('frame2',cv2.WND_PROP_FULLSCREEN)
    cv2.setWindowProperty('frame2', cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)
    

    下面

    cv2.imshow('frame2',image2)
    

    在这里,我们实际上是在播放更小尺寸的完整视频。这就是没有标题栏和边框的原因。

    【讨论】:

      【解决方案2】:

      多环顾四周:

      使用这些标志是如何使用 QT 后端的。

      CV_GUI_NORMAL or CV_GUI_EXPANDED: CV_GUI_NORMAL is the old way to draw the window without statusbar and toolbar, whereas CV_GUI_EXPANDED is a new enhanced GUI.

      不幸的是,cv2.namedWindow('image', flags=cv2.CV_GUI_EXPANDED) 不起作用,尽管我很确定我有 QT 后端(实际上我很肯定我有)。

      查找help(cv2)后,我发现WINDOW_GUI_EXPANDEDWINDOW_GUI_NORMAL有相似的标志。所以使用那些。

      img = cv2.imread('messi.jpg',0)
      
      # Removes toolbar and status bar
      cv2.namedWindow('image', flags=cv2.WINDOW_GUI_NORMAL)
      
      cv2.imshow('image',img)
      cv2.waitKey(0)
      cv2.destroyAllWindows()
      

      但在尝试删除标题栏时仍然遇到问题。

      【讨论】:

      • 你找到去除标题栏的方法了吗?
      • 我没有。我最终使用 tKinter 来获得我想要完成的显示并且能够继续进行,所以我放弃了进一步研究这种方式的显示。