【问题标题】:How to show image without title bar and border in opencv python如何在opencv python中显示没有标题栏和边框的图像
【发布时间】:2018-12-29 12:18:04
【问题描述】:

以全屏显示图像,但尺寸较小。从后端我们选择图像大小,我们必须在没有任何标题栏和边框的情况下显示该图像。只有图像会出现。我尝试了很多方法,但没有成功。有什么办法吗?如果有人知道,请帮忙,我已经坚持了很多天了

操作系统:树莓派 使用语言:Python 3

【问题讨论】:

标签: python-3.x opencv


【解决方案1】:

借助 tkinter 窗口/框架,我们可以显示没有任何边框和标题栏的图像或视频。我们要做的是,让 tkinter 窗口透明。 我将我的代码放在下面,它显示了没有边框和任何大小的标题栏的网络摄像头视频。

import numpy as np
import cv2
from tkinter import *
#import tkinter as tk
from PIL import Image, ImageTk
import sys

window = Tk()  #Makes main window
window.overrideredirect(True)
window.wm_attributes("-topmost", True)
window.geometry("+600+200")
display1 = Label(window)
display1.grid(row=1, column=0, padx=0, pady=0)  #Display 1
cap = cv2.VideoCapture(0)

def show_frame():
    _, frame = cap.read()
    frame = cv2.resize(frame, (400,400))
    #frame = cv2.flip(frame, 1)
    cv2image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGBA)
    img = Image.fromarray(cv2image)
    imgtk = ImageTk.PhotoImage(master = display1, image=img)
    display1.imgtk = imgtk #Shows frame for display 1
    display1.configure(image=imgtk)
    
    window.after(10, show_frame)

show_frame()
window.mainloop()
frame = cv2.resize(frame, (400,400)) this is use to resize our frame.

【讨论】:

    【解决方案2】:

    在 OpenCV 中显示图像的 Windows 使用 OpenGL 或 Qt 在 HighGUI 模块中实现。您可以稍微修改将向用户显示的内容(也取决于系统),但我认为您想要实现的目标在 OpenCV 中是不可能的。

    Here 是您在 OpenCV 中创建新窗口/小部件时可以使用的所有标志的列表。 不幸的是,没有像全屏模式那样隐藏标题栏的标志。为什么?这对 OpenCV 用户来说并不重要。他们使用imshow 只是为了查看结果,主要用于调试目的,因此不需要删除标题栏。

    你能做什么?将您的程序与 Qt 框架链接并直接使用 Qt 显示图像,而不是通过包装器。 This 可能会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-30
      • 2012-11-11
      • 1970-01-01
      • 2011-09-24
      • 1970-01-01
      • 1970-01-01
      • 2017-10-14
      • 2016-07-15
      相关资源
      最近更新 更多