Я пытаюсь создать систему видения, которая может считать шоколад, движущийся на конвейере с переменной скоростью. Использование OpenCV и python. Аналогично этому:
Я перепробовал множество решений, представленных в Stackoverflow, но ни одно из них не помогло. В связи с этим я прошу помощи у экспертов в этом сообществе для реализации помощи в приведенном ниже коде.
Каким-то образом мне удается создать Tkinter GUI с помощью cv2.VideoCapture.
Код, который я прикрепил, имеет только окно Tkinter для показа видеопотока. Я хочу добавить код, чтобы он показывал контрольную линию в видеокадре, как показано на рисунке ниже.
Требуется раздел справки: 1. Я хотел реализовать опорную линию для видеокадра, чтобы, когда объект пересекает линию, он считал объект.
Как я мог бы отделить капли и извлечь соответствующие центроиды.
Мне нужно увеличить переменную подсчета, если центроид пересекает контрольную границу.
Код:
import cv2
import tkinter as tk
from tkinter import *
from tkinter.ttk import Frame
from PIL import Image, ImageTk
white = "#ffffff"
lightBlue2 = "#adc5ed"
font = "Constantia"
fontButtons = (font, 12)
maxWidth = 800
maxHeight = 480
#Graphics window
mainWindow = tk.Tk()
mainWindow.configure(bg=lightBlue2)
mainWindow.geometry('%dx%d+%d+%d' % (maxWidth,maxHeight,0,0))
mainWindow.resizable(0,0)
# mainWindow.overrideredirect(1)
mainFrame = Frame(mainWindow)
mainFrame.place(x=20, y=20)
#Capture video frames
lmain = tk.Label(mainFrame)
lmain.grid(row=0, column=0)
cap = cv2.VideoCapture(0)
def show_frame():
ret, frame = cap.read()
cv2image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGBA)
img = Image.fromarray(cv2image).resize((760, 400))
imgtk = ImageTk.PhotoImage(image = img)
lmain.imgtk = imgtk
lmain.configure(image=imgtk)
lmain.after(10, show_frame)
closeButton = Button(mainWindow, text = "CLOSE", font = fontButtons, bg = white, width = 20, height= 1)
closeButton.configure(command= lambda: mainWindow.destroy())
closeButton.place(x=270,y=430)
show_frame() #Display
mainWindow.mainloop() #Starts GUI
Ожидается GUI