簡體   English   中英

光流-運動直方圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM