我很好奇为什么当我尝试扩张图片时,背景会扩大,而前景中的物体会缩小。当我试图侵蚀图片时,背景会缩小,并且物体会膨胀。应该是相反的吗?
int type = 2;
int size = 5;
Mat element = getStructuringElement( type, Size( 2*size + 1, 2*size + 1), Point( size, size ));
switch( filterEnhan )
{
case 0: out=img.clone();
break;
case 1: morphologyEx(img, out, MORPH_DILATE, element);
break;
case 2: morphologyEx(img, out, MORPH_ERODE, element);
break;
case 3:morphologyEx(img, out, MORPH_OPEN, element);
break;
}
原始图片:
扩张后:
侵蚀后:
答案 0 :(得分:0)
您使用的是错误的操作。在文档中,您可以找到对于函数morphologyEx()
,允许的值为:
您使用MORPH_DILATE
和MORPH_ERODE
进行调用,此处不允许这样做。这两个常量旨在用于函数createMorphologyFilter
。它没有崩溃的原因是,那些命名的常量实际上是数字 - 1,2,3等。
所以你在范围内因此没有崩溃,但实际上你正在做其他的操作。
对于侵蚀和扩张使用功能:erode()
和dilate()
。