Search code examples
python-3.xopencvwebcam

How to give transparent border to webcam video in opencv python?


I tried some methods, but nothing works for me. Below is my code

cv2.copyMakeBorder(img,30,30,10,10,cv2.BORDER_CONSTANT,value=[555,555,555,0])

This code shows me border, nothing mean for that last 0. Is there any other way to do this?

Thanks for your attention. I’m looking forward to your reply.


Solution

  • This Works for me :)

    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)
        #isQKeyPress = getIsQKeyPress() 
        if False:
            window.destroy()
        window.after(10, show_frame)
    
    show_frame()
    window.mainloop()