问题描述
我是 OpenCV 和 RaspBerry 的新手。我正在尝试在 raspBerry pi 4 上使用 cv.VideoWriter_fourcc
捕获视频。
我将图像转换为灰色,并使用 cv.bilateralFilter
进行模糊处理,并使用 cv.HoughCircles
搜索圆圈。生成的视频冻结并丢失帧。我首先将 FPS 设置为 24.0,但它看起来像是快进。我尝试了一些值,似乎 6.0 是匹配视频长度的最佳值。
我的代码包含更多不相关的步骤,我将在下面提供相关部分。
我怎样才能从中获得流畅的 30 或 60 FPS 视频? 提前致谢。
#Open cam and initialize video codecs
cap = cv.VideoCapture(0)
fourcc = cv.VideoWriter_fourcc(*"MJPG")
out = cv.VideoWriter('myvideo.avi',fourcc,22.0,(640,480))
.
.
#For 80 Sec while loop:
start_time = int(time.time())
duration = int(80)
.
.
while ((int(time.time())-start_time)<duration):
istrue,frame = cap.read()
#Gray and blur
gray = cv.cvtColor(frame,cv.COLOR_BGR2GRAY)
blur = cv.bilateralFilter(gray,13,75,75) #Blur density is 13. 75 is irrelevant.
#Find Circles
circles = cv.HoughCircles(blur,cv.HOUGH_GRADIENT,1,1000,param1 = 50,param2=45,minRadius = 1,maxRadius = 0)
#Put time as text
cv.putText(frame,str(datetime.time(datetime.Now())),(15,30),cv.FONT_HERShey_SIMPLEX,0.5,(255,0),cv.LINE_AA)
#put text at every 20 secs
cv.putText(frame,every_20_sec(start_time),50),cv.LINE_AA)
#cv.putText(frame,cv.LINE_AA)
if circles is not None:
circles = np.uint16(np.around(circles))
for i in circles[0,:]:
cv.circle(frame,(i[0],i[1]),i[2],(0,255,2)
cv.circle(frame,255),2)
#pixel coordinates as text
pos_str = str(int(i[0])) + ' ' + str(int(i[1]))
cv.putText(frame,pos_str,(i[0]+100,i[1]+100),2,cv.LINE_AA)
xlist.append(i[0])
ylist.append(i[1])
out.write(frame)
cap.release()
out.release()
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)