《OpenCV》五、图片腐蚀、膨胀与模糊

2021-10-11  本文已影响0人  GoodTekken

开运算是先腐蚀(erode)后膨胀(dilate)的过程,可以消除图像上细小的噪声,并平滑物体的边界。
闭运算是先膨胀(dilate)后腐蚀(erode)的过程,可以填充物体内细小的空洞,并平滑物体边界。

1,图片腐蚀(erode)

提取每一个位置的矩形邻域内值的最小值作为该位置输出灰度值.

erode

使用方法:

erode(src, dst, getStructuringElement(MORPH_RECT, Size(15, 15)));

2,图片膨胀(ditate)

提取每一个位置的矩形邻域内值的最大值作为该位置输出灰度值.

dilate

使用方法:

dilate(src, dst, getStructuringElement(MORPH_RECT, Size(15, 15)));

3,图片模糊(blur)

blur()函数定义:

void blur( InputArray    src, 
           OutputArray   dst,
           Size          ksize, 
           Point         anchor = Point(-1,-1),
           int           borderType = BORDER_DEFAULT 
         );

borderTypes 取值范围:

enum BorderTypes {
    BORDER_CONSTANT    = 0,     // `iiiiii|abcdefgh|iiiiiii`  with some specified `i`
    BORDER_REPLICATE   = 1,     // `aaaaaa|abcdefgh|hhhhhhh`
    BORDER_REFLECT     = 2,     // `fedcba|abcdefgh|hgfedcb`
    BORDER_WRAP        = 3,     // `cdefgh|abcdefgh|abcdefg`
    BORDER_REFLECT_101 = 4,     // `gfedcb|abcdefgh|gfedcba`
    BORDER_TRANSPARENT = 5,     // `uvwxyz|abcdefgh|ijklmno`
 
    BORDER_REFLECT101  = BORDER_REFLECT_101, // same as BORDER_REFLECT_101
    BORDER_DEFAULT     = BORDER_REFLECT_101, // same as BORDER_REFLECT_101
    BORDER_ISOLATED    = 16 // do not look outside of ROI
};
blur

使用方法:

blur(src, dst_opencv, Size(3, 3), Point(-1, -1), BORDER_DEFAULT);
上一篇 下一篇

猜你喜欢

热点阅读