簡體   English   中英

我通過打開 cv2 不斷收到此人臉檢測錯誤

[英]I keep getting this error for face detection through open cv2

import cv2,time

first_frame=None

video = cv2.VideoCapture(0,cv2.CAP_DSHOW)

while True:

    check,frame=video.read()
    gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
    gray=cv2.GaussianBlur(gray,(21,21),0)
    if first_frame is None:
        first_frame=gray
        continue
    diff = cv2.absdiff(first_frame,gray)
    delta=cv2.threshold(diff,30,255,cv2.THRESH_BINARY)
    delta=cv2.dilate(delta,None,iterations=0)
    _,cnt,_=cv2.findContours(delta,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
    for contou in cnt:
        if cv2.contourArea(contou)<1000:
            continue
        (x,y,w,h)=cv2.boundingRect(contou)
        cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,0),3)

    cv2.imshow('frame',frame)
    cv2.imshow('gray',gray)
    cv2.imshow('diffe',diff)
    cv2.imshow('delta', delta)
    key=cv2.waitKey(1)
    if key==ord('q'):
        break
video.release()

cv2.destroyAllWindows()
delta=cv2.dilate(delta,None,iterations=0) 
TypeError: Expected Ptr<cv::UMat> for argument '%s'

我收到此錯誤。 請幫助解決錯誤和代碼。

用這個改變 cv2.threshold 線
retval, delta = cv2.threshold(diff,30,255,cv2.THRESH_BINARY)

檢查此鏈接以獲取有關 cv2.threshold 函數及其返回值的說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM