问题描述
客观地在实时视频流的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 (将#修改为@)