[英]Optical Flow - Motion histograms
我目前正在使用OpenCV C ++處理光流。 我正在使用帶有點網格的CalcOpticalFlowPyrLK(=每個5 * 5像素正方形有一個興趣點)。
最好的方法是:
1)計算每幀計算值的直方圖(方向和距離)
2)計算給定像素在幾幀(例如100)期間所取值(方向和距離)的直方圖
OpenCV的功能是否適合這項工作? 如何結合calcOpticalFlowPyrLK以簡單的方式使用它們?
幾個月前,我正在尋找相同的OpenCV工具。 不幸的是,OpenCV不包含任何運動直方圖實現。 相反,您需要做的是為每個幀運行calcOpticalFlowPyrLK並計算每個位移的方向/長度。 然后,您必須自己創建/填充直方圖。 不像聽起來那么難,相信我:)
HOOF的第一部分的OpenCV實現如下所示:
const int rows = flow1.rows;
const int cols = flow1.cols;
for (int y = 0; y < rows; ++y)
for (int x = 0; x < cols; ++x)
{
Vec2f flow1_at_point = flow1.at<Vec2f>(y, x);
float u1 = flow1_at_point[0];
float v1 = flow1_at_point[1];
magnitudeImage += sqrt((u1*u1) + (v1 + v1));
orientationImage += atan2(u1, v1);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.