почему трекбары не работают в Python - PullRequest
0 голосов
/ 30 апреля 2020

При запуске у меня нет никаких ошибок, но TrackBars не работают

import numpy as np
import cv2
c = cv2.VideoCapture(0)

def cam(x):
  pass


while(True):
    cv2.createTrackbar("BW", "frame", 0, 255, cam)
    cv2.createTrackbar("R", "frame", 0, 255, cam)
    cv2.createTrackbar("G", "frame", 0, 255, cam)
    cv2.createTrackbar("B", "frame", 0, 255, cam)
    #cv2.createTrackbar("W", "frame", 0, 255, cam)
    cv2.createTrackbar("t","frame", 0, 1, cam)
    cv2.createTrackbar("blur","frame", 0, 100, cam)

    ret, frame = c.read()
    if(cv2.getTrackbarPos("BW","frame") > 127):
        frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    if(cv2.getTrackbarPos("R","frame") > 127):
        b,g,r = cv2.split(frame)
        r_eq=cv2.equalizeHist(r)
        frame = cv2.merge((b,g,r_eq))
    if(cv2.getTrackbarPos("G","frame") > 127):
        b,g,r = cv2.split(frame)
        g_eq = cv2.equalizeHist(g)
        frame = cv2.merge((b,g_eq,r))
    if(cv2.getTrackbarPos("B","frame") > 127):
        b,g,r = cv2.split(frame)
        b_eq=cv2.equalizeHist(b)
        frame = cv2.merge((b_eq,g,r))
    cv2.imshow("frame",frame)

    if(cv2.getTrackbarPos("blur","frame") > 0):
        if (cv2.getTrackbarPos("blur","frame") % 2) == 1:
            aux = cv2.getTrackbarPos("blur","frame") 
        else:
            aux = cv2.getTrackbarPos("blur","frame") +1

        frame = cv2.GaussianBlur(frame,(aux,aux),0)

    if(cv2.getTrackbarPos("t","frame") == 1):
        frame = cv2.putText(frame,"Track 4 pressed", (10,30), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255,255,255), 1)

    cv2.imshow("frame",frame)

    if cv2.waitKey(1) & 0xFF == ord("b"):
        break
c.release()
cv2.destroyAllWindows()

Когда я заканчиваю sh работа в терминале (Ctrl + C), у меня есть эта трассировка ошибок ( последний вызов был последним): файл "VideoCapture.py", строка 25, ret, frame = c .read () KeyboardInterrupt

...