有什么办法可以使用具有永久投资回报率的Camshift

问题描述

我正在尝试监视视频中对象的运动(x y z和旋转)。我的问题是该视频的色相不足以使用Camshift,但是最后,我成功解决了这一问题。好的部分是CamShift和MeanShift能够跟随我的对象(x y z),但是CamShift却不能跟随旋转对象。看来,计算机宁愿增加\减小它的大小,而不是旋转ROI。

因为我的对象具有永久大小(距相机的距离是恒定的),所以我认为也许可以使用具有固定ROI大小的CamShift,并以此方式迫使ROI旋转。您知道这样做的任何方式吗?

任何其他建议都会被接受。

这里有一些照片和我的代码: The ROI just get bigger and smaller instead of rotating compare to the first picture

我如何找到正确的HSV值:

Finding the right HSV values

有我的代码:

import numpy as np
import cv2 as cv
cap = cv.VideoCapture('RoT_di_20khz001_15V028.avi')
ret,frame = cap.read()
x,y,width,height = 740,400,90,88

track_window = (x,height)
roi = frame[y:y+height,x : x+width]
hsv_roi = cv.cvtColor(roi,cv.COLOR_BGR2HSV)

term_crit = ( cv.TERM_CRITERIA_EPS | cv.TERM_CRITERIA_COUNT,10,1)
cv.imshow('roi',roi)
while(1):
    ret,frame = cap.read()

    if ret == True:


        hsv = cv.cvtColor(frame,cv.COLOR_BGR2HSV)

        dst= cv.inRange(hsv,np.array((0.,0.,0.)),140)))
        ret,track_window = cv.CamShift(dst,track_window,term_crit)

        x,w,h = track_window
        final_image = cv.rectangle(frame,(x,y),(x+w,y+h),255,3)

        cv.imshow('dst',dst)
        cv.imshow('final_image',final_image)
        k = cv.waitKey(30) & 0xff
        if k == 27:
            break
    else:
        break

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...