如何在OpenCV Python中显示没有标题栏和边框的图像

时间:2018-12-29 12:18:05

标签: python-3.x opencv

以全屏方式显示图像,但尺寸较小。从后端,我们选择图像尺寸,并且我们必须显示该图像而没有任何标题栏和边框。仅图像会出现。我尝试了很多方法,但没有成功。有什么办法吗?如果有人知道的话,请帮忙,我从很多天以来一直陷入困境

操作系统:Raspberry PI 语言使用:Python 3

2 个答案:

答案 0 :(得分:0)

使用OpenOpenGL或Qt在HighGUI模块中实现在OpenCV中显示图像的Windows。您可以修改显示给用户的内容(还取决于系统),但是我认为您尝试实现的功能在OpenCV中是不可能的。

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

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

答案 1 :(得分:0)

借助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.