zoukankan      html  css  js  c++  java
  • 图像开运算和闭运算

    1、原理

    图像开运算与闭运算与膨胀和腐蚀运算有关,由膨胀和腐蚀两个运算的复合与集合操作(并、交、补等)组合成的运算构成。开运算与闭运算依据腐蚀和膨胀演变而来。

    1)开运算:先对图像腐蚀后膨胀。

    A○S= (AΘS)⊕ S

    作用:用来消除小的物体,平滑形状边界,并且不改变其面积。可以去除小颗粒噪声,断开物体之间的粘连。

    2)闭运算:先对图像膨胀后腐蚀

    A●S= (A⊕S)Θ S

    作用:用来填充物体内的小空洞,连接邻近的物体,连接断开的轮廓线,平滑其边界的同时不改变面积。

    2、开运算的实现

    imgPath = 'E:opencv_picsrc_picpic2.bmp';
    img = imread(imgPath);
    img=rgb2gray(img);
    img = 255-img;
     
    se = strel('square', 5);
    img2 = imerode(img, se);
    img3 = imdilate(img2, se);
    subplot(1,3,1),imshow(img),title('原始图像');
    subplot(1,3,2),imshow(img2),title('腐蚀后');
    subplot(1,3,3),imshow(img3),title('膨胀后');

    效果如下图。腐蚀消除了小的噪点,保留了最大的一个噪点,膨胀之后还原了噪点的形状。图像上,草莓蒂上的小花纹已经消失。

     放大后观察,原图里有较大的斑点,6*5的方块(纵向缺1个点),腐蚀后只剩下1个点,膨胀后变为5*5的方块。

    放大到像素级可见,腐蚀图上的点(32,110)在膨胀图里被还原为5*5的块。

     使用imopen函数,效果相同。

    3、闭运算的实现

    imgPath = 'E:opencv_picsrc_picpic2.bmp';
    img = imread(imgPath);
    img=rgb2gray(img);
    img = 255-img;
     
    se = strel('square', 4);
    img2 = imdilate(img, se);
    img3 = imerode(img2, se);
    subplot(1,3,1),imshow(img),title('原始图像');
    subplot(1,3,2),imshow(img2),title('膨胀后');
    subplot(1,3,3),imshow(img3),title('腐蚀后');

    闭运算效果如下图。

    放大后,图像左侧的噪点在膨胀过程被连在一起,体积增大很多。腐蚀后形状发生了一些改变,体积变小很多。

    使用大小为15的结构元素,se = strel('square', 15);草莓中间的空心圈变为实心圈。膨胀过程中,空心被高亮白色填充,但是花瓣部分已经连接在一起形状发生了较大改变。再次腐蚀后,去掉了膨胀造成的粘连,花瓣部分大体形状恢复。

    在matlab里,使用imclose函数也可以达到上面先膨胀后腐蚀的效果。

    4、总结

    单独对比开运算和闭运算,对比图如下。

    开运算先腐蚀后膨胀,去除了小的黑点,方块边缘变得圆润了,也就是开运算对图像轮廓进行平滑。

    而闭运算先膨胀后腐蚀,把中心比较大的块连接为一个整体,填补了空白的缝隙。

    开运算能够除去孤立的小点,毛刺和小桥,而物体的形状轮廓基本不变。

    闭运算与开运算相反,能够填平前景物体内的小裂缝、间断和小孔,而总的位置和形状不变。

    结构元素大小的不同将导致滤波效果的不同。

    不同的结构元素的选择导致了不同的分割,即提取出不同的特征。

    5、参考文献

    1、形态学开运算闭运算

    https://www.jianshu.com/p/2eae48a44f83

    2、More Morphology Transformations

    https://docs.opencv.org/2.4/doc/tutorials/imgproc/opening_closing_hats/opening_closing_hats.html#more-morphology-transformations

    尊重原创技术文章,转载请注明。

    https://www.cnblogs.com/pingwen/p/12240890.html

  • 相关阅读:
    [MacOS]Sublime text3 安装(一)
    [RHEL8]开启BBR
    PAT Advanced 1136 A Delayed Palindrome (20分)
    PAT Advanced 1144 The Missing Number (20分)
    PAT Advanced 1041 Be Unique (20分)
    PAT Advanced 1025 PAT Ranking (25分)
    PAT Advanced 1022 Digital Library (30分)
    PAT Advanced 1019 General Palindromic Number (20分)
    PAT Advanced 1011 World Cup Betting (20分)
    PAT Advanced 1102 Invert a Binary Tree (25分)
  • 原文地址:https://www.cnblogs.com/pingwen/p/12240890.html
Copyright © 2011-2022 走看看