【问题标题】:Finding number of pixels in each blob using OpenCV in C++在 C++ 中使用 OpenCV 查找每个 blob 中的像素数
【发布时间】:2015-10-29 09:51:20
【问题描述】:

我有一个包含多个 blob 的二进制图像。我想找到每个 blob 中的像素数。我的openCV版本低于3.0,所以我没有connectedComponents功能。我正在尝试findContour而不是。如果图片是im,我执行findContour为:

cv::findContours(im.clone(), contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE);

现在,contour[i]contourArea(contours[i]); 的大小并没有真正给出像素数。是否有任何其他函数可以查找每个 blob 中的像素数?

A post 推荐使用 cvBlobslib 库,但是 OpenCV 中是否有内置函数(版本低于 3.0)?

【问题讨论】:

    标签: c++ opencv image-processing


    【解决方案1】:

    如果升级您的 OpenCV 不是一个选项,您仍然可以从 OpenCV3.0 获取 connectedComponents 的实现并将其植入您自己的代码中。 OpenCV 是一个开源项目。你可以得到implementation of connectedComponents() from gitHub

    还有其他方法可以获取像素数,但它们确实效率低下。比如你可以使用drawContours()函数将findContours()找到的轮廓在某个空白图像上一一绘制,然后使用countNonZero()计算非黑色像素的个数。

    【讨论】:

      猜你喜欢
      • 2013-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-07
      • 2020-12-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多