使用C ++获取OpenCV中Blob的位置

时间:2016-06-28 11:37:42

标签: c++ opencv

enter image description here

显示的图像是两个图像之间的差异。我想做的就是获得白色部分的位置。我想这样做是因为我希望能够突出显示原始图像上差异的位置。

我正在考虑使用聚类或斑点检测,或者只是找到图像中最亮或最白的像素。

您认为哪种方法最简单?还有其他方法吗?

1 个答案:

答案 0 :(得分:0)

使用findContour方法在图像中查找闭合轮廓。

vector<vector<Point> > contours;
vector<Vec4i> hierarchy;
findContours( BinaryImage, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0) );

您可以使用 drawContours 绘制轮廓。

变量轮廓包含制作该特定轮廓的坐标。您可以通过以下命令显示它

for(double i=0; i<contours.size(); i++)
{
    cout << contours[i];
    drawContours( OutputImage, contours, i, Scalar(0,255,0), 2, 8, hierarchy, 0, Point() );
}