gpt4 book ai didi

OpenCV - 如何从轮廓中删除小线段?

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

有没有办法从轮廓中删除小线段?

例如,在此图像中,最大轮廓由绿色指定,它的近似值由蓝色指定:

enter image description here

由于轮廓是一组点,我想我们可以做一些事情来删除红色圆圈中的轮廓线段。例如,通过检测和移除细线或细小的子轮廓或其他方式。但我不知道我该怎么做。

请记住我想在找到轮廓之后而不是之前删除它们。你知道我怎样才能删除它们吗?或者有什么想法?

最佳答案

我发现 contourArea 非常适合去除小的、孤立的轮廓。此代码段说明了您可以如何继续:

findContours(edges, contours, hierarchy, CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE);

...

// Prune contours
vector<vector<Point> > prunedContours;
for (size_t i = 0; i< contours.size(); i++)
{
if (contourArea(contours[i]) > minArea)
{
prunedContours.push_back(contours[i]);
}
}

如果“循环”或无关的轮廓区域是感兴趣的较大轮廓的一部分,请查看 approxPolyDP .原始轮廓的粗略近似可能会忽略无关的特征。

关于OpenCV - 如何从轮廓中删除小线段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26301683/

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