如何将光流向量应用于检测到的圆

时间:2016-01-28 10:20:45

标签: c++ opencv image-processing feature-detection opticalflow

我正在研究交通标志检测项目。已经检测到圆形交通标志,现在我想计算仅用于交通标志但不是整个图像的光流向量。 我可以找到检测到的圆的半径,但不知道如何使用它创建一个圆形遮罩 IplImage 来提供" cvGoodFeatureToTrack" & #34; cvCalcOpticalFlowPyrLK()"

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

假设你有交通标志的中心和半径,即:

cv::Point center(200, 300);
int radius = 50;

goodFeaturesToTrack工作的感兴趣区域可以通过与输入图像大小相同的CV_8UC1蒙版控制:

cv::Mat mask = cv::Mat::zeros(grayFrame.size(), CV_8UC1);
cv::circle(mask, center, radius, cv::Scalar::all(255), -1);

最后根据交通标志使用填充了255s的新掩码调用该函数:

cv::goodFeaturesToTrack(grayFrame, corners, 100, 0.01, 10, mask);