как скрыть строку заголовка или окно в python - PullRequest
0 голосов
/ 18 февраля 2020

Я хочу спрятать свое окно или полоску моего окна. как я хочу показать вывод opencv без рамки.

скажите мне, как я могу сделать это с помощью tkinter или pyqt5. а также я хочу размер продукции в соответствии с моими спецификациями. и могу ли я изменить размер и изменить место вывода, как перетаскивание в любом месте на рабочем столе, в то время как код работает.

import cv2
import os
import numpy as np
import datetime

date=datetime.datetime.now()
framerate=24
screen_size=(640,480) #std res 640,480
filename='E:/project/videos/cam_%s%s%s%s%s%s.avi' %(date.year,date.month,date.day,date.hour,date.minute,date.second)
fourcc = cv2.VideoWriter_fourcc(*'XVID')

cap=cv2.VideoCapture(0)
out= cv2.VideoWriter(filename,fourcc,framerate,screen_size)
cv2.namedWindow('frame',cv2.WINDOW_NORMAL)
cv2.resizeWindow('frame',280,190)
cv2.moveWindow('frame',5,495)
#cv2.namedWindow('frame',cv2.WND_PROP_FULLSCREEN)   #use for full screen
#cv2.setWindowProperty('frame', cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)



while(cap.isOpened()):
    ret, frame = cap.read()
    if ret==True:

        frame=cv2.flip(frame,1)


        out.write(frame)

        cv2.imshow('frame',frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break       



cap.release()
out.release()
cv2.destroyAllWindows()
screen.mainloop()

1 Ответ

1 голос
/ 19 февраля 2020

Ниже приведен пример использования tkinter для отображения захваченных изображений с веб-камеры:

import cv2
import datetime
from tkinter import *
from PIL import Image, ImageTk

screen = Tk()
screen.overrideredirect(1)  # remove window decorations
screen.geometry('280x200+5+520')  # move the window

framerate = 24
screen_size = (640, 480) #std res 640,480

date = datetime.datetime.now()
filename = 'E:/project/videos/cam_%s%s%s%s%s%s.avi' % (date.year, date.month, date.day,
                                                       date.hour, date.minute, date.second)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter(filename, fourcc, framerate, screen_size)

cap = cv2.VideoCapture(0)

imgbox = Label(screen)
imgbox.pack(fill=BOTH, expand=1)

def quit(event):
    cap.release()
    out.release()
    screen.destroy()

def read_frame():
    ret, frame = cap.read()
    if ret:
        frame = cv2.flip(frame, 1)
        out.write(frame)
        # since openCV capture image is in BGR color sequence
        # so need to convert it to RGB color sequence
        frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
        # convert the openCV image to PIL (Pillow) format
        img = Image.fromarray(frame)
        #img = img.resize((280, 200))  # not keep aspect ratio
        img.thumbnail((280, 200))  # keep aspect ratio
        img = ImageTk.PhotoImage(img)
        imgbox.config(image=img)  # update the image
        img.image = img  # keep a reference of the image to avoid being garbage collected
    screen.after(20, read_frame)  # schedule next read after 20 ms

# bind the 'q' key to quit program
screen.bind('q', quit)

read_frame()
screen.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...