我正在使用 OpenCV 和 c++。二值化后我有黑白图像。当我只有一个点 (x,y) 属于该对象时,如何计算对象的面积?
由于它是二值图像,因此您可以轻松获得blobs http://en.wikipedia.org/wiki/Blob_detection。获得斑点后,您可以轻松计算斑点面积。
您可以使用CVBLOB库 http://opencv.willowgarage.com/wiki/cvBlobsLib得到斑点。 OpenCV 尚未集成 cvBlobsLib。你可以自己做。但 OpenCV 具有轮廓功能。您可以使用 findContours 获取斑点/轮廓,然后获取面积。OpenCV - 查找轮廓 http://docs.opencv.org/2.4.2/doc/tutorials/imgproc/shapedescriptors/find_contours/find_contours.html
OpenCV - 结构分析和形状描述 http://opencv.itseez.com/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html
您将找到有关矩、huMoments、轮廓等的信息。使用矩,您可以创建自己的斑点,它还将帮助您获取斑点区域。
这是一个机器视觉的开源框架,它使用 OpenCV 的 Python 绑定 -SimpleCV http://simplecv.org/
他们使用轮廓和矩实现了完整的斑点功能。你可以看看。
Blob https://github.com/ingenuitas/SimpleCV/blob/develop/SimpleCV/Features/Blob.py
斑点制作器 https://github.com/ingenuitas/SimpleCV/blob/develop/SimpleCV/Features/BlobMaker.py
它是用 Python 编写的,但您可以将其移植到 C++ 并使用 blob。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)