【发布时间】:2016-01-27 13:39:15
【问题描述】:
作为学校的一项任务,我们小组必须创建一个知道何时进球的应用程序。这意味着一个球形物体通过了一条线。
首先我们尝试输入视频,让 OpenCV 跟踪球,然后将其作为视频输出。
我已经把一堆我在 StackOverflow 上找到的其他代码 sn-ps 放在一起,但它不起作用。
我正在创建一个新帖子,因为所有其他相关线程要么是 C++,要么使用颜色检测而不是我们使用的形状检测。当视频文件变成一系列图像时,我也找不到输出视频文件的明确答案。
以下是我目前的代码:
import cv2
import numpy as np
cap = cv2.VideoCapture('bal.mp4')
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output1.avi',fourcc, 20.0, (640,480))
while(1):
# Take each frame
ret, frame = cap.read()
if ret == True:
if ret == 0:
break
frame = cv2.medianBlur(frame,5)
cimg = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
circles = cv2.HoughCircles(cimg,3,1,20,param1=50,param2=30,minRadi$
if circles == None:
print "NoneType"
break
circles = np.uint16(np.around(circles.astype(np.double),3))
for i in circles[0,:]:
# draw the outer circle
cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),2)
# draw the center of the circle
cv2.circle(cimg,(i[0],i[1]),2,(0,0,255),3)
cv2.imwrite('test.jpg',cimg)
out.write(cimg)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
out.release()
cv2.destroyAllWindows()
我们得到工作图像,但视频无法使用 VLC 或任何其他媒体播放器播放。
这是程序中的一张图片:
这个问题现在正在把它变成一个可播放的视频。
提前致谢。
【问题讨论】:
-
这个帖子你红了吗:stackoverflow.com/questions/19387608/…?
-
我不知道如何实现。
-
我说的是你的错误。这篇文章解释了关于这个错误的一些事情。
-
我的意思是,我们没有人对 numpy 有足够的了解,无法知道其中发生了什么。 numpy 部分取自另一个项目。
-
试试这个:np.around(circles.astype(np.double),3) 我认为你应该在问之前学习和阅读你的工具。如果您想学习如何编程,复制粘贴不是要走的路