如果Canny图像轮廓在opencv中的当前矩形上重叠,则矩形大小会更改

问题描述

客观地在实时视频流的canny图片的黑色部分上绘制一个一定大小(例如100x75)的矩形。

我想要做的是绘制矩形,但是如果流发生变化,则相应地在新区域(另一个黑色区域)中绘制矩形。

会发生什么-它绘制了一个随机大小的矩形,包围了轮廓,我不想发生这种情况。

cap=cv2.VideoCapture(0)

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

    #Preprocessing
    gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
    gray = cv2.GaussianBlur(gray,(5,5),0)
    edges = cv2.Canny(gray,20,30)
    edges_high_thresh = cv2.Canny(gray,60,120)
    print(cv2.countNonZero(edges_high_thresh[0:75,0:100]))   

    #Drawing my rectangle.Flag is used to ensure only one rectangle is present on the live video.    
    flag=0
    for i in np.linspace(0,480,5,dtype=int):
        for j in np.linspace(0,640,dtype=int):                
            k=cv2.countNonZero(edges_high_thresh[i:i+75,j:j+100])               
            if k==0 and flag==0:
                cv2.rectangle(edges_high_thresh,(i,j),(j+100,i+75),(255,0),1)
                flag=1

    cv2.imshow("images",edges_high_thresh)    
    if ord('q') == cv2.waitKey(25) & 0xFF:
          break
cap.release()
cv2.destroyAllWindows()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)