• 使用不同的膨胀和腐蚀方法对图像进行处理


    膨胀是将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。通过膨胀,可以填充图像中的小孔及在图像边缘处的小凹陷部分。结构元素B对图像A进行膨胀,记作A ​ B

    腐蚀和膨胀是对偶操作。腐蚀是一种消除边界点,使边界向内部收缩的过程。利用腐蚀操作,可以消除小且无意义的物体。集合A被结构元素B腐蚀,记作AThetaB

    这里为了简化起见,被膨胀和腐蚀图像我们处理成二值图像:

    matlab 中

    膨胀函数 IM2 = imdilate(IM,SE)   对图像IM进行膨胀,采用的结构元素为SE,SE为函数strel()得到的结构元素

    腐蚀函数 IM2 = imerode(IM,SE)  对图像IM进行腐蚀,其他同上

    以膨胀为例代码如下:

    close all;clear all;clc;
    I = imread('ceshi1.jpg');
    I = im2bw(I);
    I = ~I;
    se1 = strel('square',3);  %方形膨胀元素
    se2 = strel('line',5,90);   %线性膨胀元素
    %se3 = strel('ball',5,10);   %球形膨胀元素  不能用于二值图像
    se4 = strel('disk',11);     %磁盘膨胀元素
    se5 = strel('rectangle',[20 30]);  %矩形膨胀元素
    A = imdilate(I,se1);
    B = imdilate(I,se2);
    %C = imdilate(I,se3);
    D = imdilate(I,se4);
    E = imdilate(I,se5);
    figure;
    subplot(231);imshow(I);title('origin');
    subplot(232);imshow(A);title('square');
    subplot(233);imshow(B);title('line');
    %subplot(234);imshow(C);title('ball');
    subplot(235);imshow(D);title('disk');
    subplot(236);imshow(E);title('rectangle');

    strel结构元素说明:

     Examples
        --------
            se1 = strel('square',11)      % 11-by-11 square
            se2 = strel('line',10,45)     % line, length 10, angle 45 degrees
            se3 = strel('disk',15)        % disk, radius 15
            se4 = strel('ball',15,5)      % ball, radius 15, height 5

    注意:这里球形结构元素不能用于膨胀操作,腐蚀操作类似,只需要修改imdilate函数为imerode函数

    程序执行后输出如下:

     
  • 相关阅读:
    【python小随笔】单例模式设计(易懂版)
    【python小随笔】函数的初始化与私有化
    【python小随笔】List列表的常见函数与切片
    【itsdangerous】的加密解密原理(易懂版)
    【Django入坑之路】Django后台上传图片,以及前端的显示
    【插拔式】分页+bootstrap4(开源)
    luogu P1231 教辅的组成 |网络流最大匹配
    luogu P3376 【模板】网络最大流 |Dinic
    luogu P4177 [CEOI2008]order |最大权闭合子图
    luogu P4562 [JXOI2018]游戏 |组合数学
  • 原文地址:https://www.cnblogs.com/wojianxin/p/11454182.html
Copyright © 2020-2023  润新知