gpt4 book ai didi

c++ - 在 C++ 中使用 OpenCV 查找每个 Blob 中的像素数

转载 作者:太空宇宙 更新时间:2023-11-03 22:12:28 26 4
gpt4 key购买 nike

我有一个包含多个 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 的版本)是否有内置函数?

最佳答案

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

还有其他方法可以获取像素数,但是效率真的很低。例如,您可以使用 drawContours() 函数将 findContours() 找到的轮廓一张一张地绘制到某个空图像上,并使用 countNonZero() 计算非黑色像素的数量。

关于c++ - 在 C++ 中使用 OpenCV 查找每个 Blob 中的像素数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31852524/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com