如何使用cv :: findcontours和层次结构查找内孔的数量

 vhjkg 发布于 2023-02-11 18:36

我需要在下面的图像中找到内孔的数量.我的最终要求是使用opencv中的轮廓层次来检测和找到圆形黑洞的区域.不需要使用任何其他算法.

基于此链接在OpenCV中使用findContours()中的层次结构?我试过但它不起作用.

有没有其他方法可以找到图像中没有孔?

在这里,我已经附加了样本图像和代码.任何人都可以使用层次结构单独找到内部黑洞.我对轮廓层次结构没有太多经验.谢谢.我使用opencv c ++ lib.

<code>在此处输入图像说明</ code>

cv::Mat InputImage = imread("New Image.jpg");
int Err;

if(InputImage.empty() == 1)
{
    InputImage.release();
    cout<<"Error:Input Image Not Loaded"< Planes;
cv::split(InputImage,Planes);

greenTargetImage = Planes[1];
cv::Mat thresholdImage = cv::Mat (greenTargetImage.size(),greenTargetImage.type());
cv::threshold(greenTargetImage,thresholdImage,128,255,THRESH_OTSU);
imwrite("thresholdImage.jpg",thresholdImage);

std::vector> contours;
std::vector hierarchy;
cv::findContours(thresholdImage,contours,hierarchy,cv::RETR_CCOMP,cv::CHAIN_APPROX_SIMPLE,cv::Point(-1,-1));
cout<

应用此代码后,我得到的输出计数值是11.但是我的要求是计数值应该是10而且我只需要绘制内部黑洞而不是所有外部轮廓的边界.我的英语.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有