猿问

我怎样才能让 findcontour 变慢?

我想找到一个物体的速度。首先,我测量球经过那里的两点以及它们的差异以找到长度。还有时间..最后我把长度除以时间我得到速度但是..


我的问题是计算机非常快速地在视频中找到轮廓。当我使用 time.sleep() 时,视频中开始出现延迟。我不想这样。我只想要“寻找轮廓速度减慢”而没有任何 fps 或滞后(我不知道)改变


for c in cnts :

    M = cv2.moments(c)

    cX = int(M["m10"] / M["m00"])

    cY = int(M["m01"] / M["m00"])

    x, y, w, h = cv2.boundingRect(c)

    cv2.rectangle(video, (x, y), (x + w, y + h), (0, 255, 0), 2)

    cv2.circle(video, (cX,cY),7,(255,255,255),-1)


if cX != cX1:

    start1 = time.time()

    Lenght = math.sqrt(abs(cX-cX1)*abs(cX-cX1)+abs(cY-cY1)*abs(cY-cY1))

    Time = start1-end1

    Velocity = Lenght/Time

    print(Velocity)

    end1 = time.time()

cX1 = cX

cY1 = cY


30秒到达战场
浏览 150回答 2
2回答

繁华开满天机

您是否可以获得帧时间并根据此值测量帧之间的速度:_, frame1 = video.read()t1 = video.get(cv2.CAP_PROP_POS_MSEC)_, frame2 = video.read()t2 = video.get(cv2.CAP_PROP_POS_MSEC)diff_sec = (t2 - t1) / 1000.0

森栏

好的,我用这个代码修复了for i in range(0,1):    start2 = time.time()    if start2-end2>1.0 :        cnts,_ = cv2.findContours(video, cv2.RETR_TREE , cv2.CHAIN_APPROX_SIMPLE)    end2 = time.time()
随时随地看视频慕课网APP

相关分类

Python
我要回答