我目前正在使用OpenCV来检测二进制图像中的斑点。我想在不改变大物体的情况下擦除小线条。
以下是一个示例:原始图片是
我想将其转换为以下
“打开”不起作用,因为在应用时,三角形的边缘被切掉了。是否还有其他方法可以删除线条,而不会丢失大三角形的信息?
答案 0 :(得分:3)
使用Erosion消除此类噪音,
代码看起来像,
Mat src;//load source
Mat dst;//destination image
Mat element = getStructuringElement( MORPH_RECT,Size(5,5), Point( -1, -1 ) ); // kernel performing drode
erode( src, dst, element );
修改强>
在这里添加@Bull评论作为更合适的方法,建议erosion followed by dilation will get you very close to what you want
。