【发布时间】:2014-03-17 16:16:15
【问题描述】:
我有一个 opencv 程序来跟踪这里的蓝色对象
有人可以修改它以在将其阈值化为二进制图像后找到从网络摄像头跟踪的对象的中心
PS:我希望这个程序可以使用网络摄像头而不是图像
import numpy as np
import cv2
cap = cv2.VideoCapture(1)
while(True):
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
lower_blue = np.array([110,50,50])
upper_blue = np.array([130,255,255])
mask = cv2.inRange(gray, lower_blue, upper_blue)
res = cv2.bitwise_and(frame,frame, mask= mask)
# Display the resulting frame
cv2.imshow('frame',gray)
cv2.imshow('mask',mask)
cv2.imshow('res',res)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
我想从网络摄像头的阈值图像中找到白色斑点的中心,即 xy 坐标
我有用于查找阈值图像的 xy 坐标的代码
我想为来自网络摄像头的实时视频修改它
这里是查找二进制图像坐标的代码
for y in xrange(img.size[1]):
for x in xrange(img.size[0]):
if pixels[x, y] == 0:
xlist.append(x)
ylist.append(y)
xleft = min(xlist)
xright = max(xlist)
ytop = min(ylist)
ybot = max(ylist)
xax = (xleft+xright)/2
yax = (ytop+ybot)/2
有人可以将这 2 个代码组合起来,使其适用于来自网络摄像头的实时供稿
【问题讨论】: