• 8. matlab图像处理基础——边缘检测+形态学变换+图像增强


    1、边缘检测

    ① 处理结果 = edge(原始图像,算子)

      算子:

        Sobel    log

        Roberts      Canny

        Prewitt       zerocross

    %% 边缘检测
    I = imread('cameraman.tif');
    J1 = edge(I,'Sobel');
    subplot(3,3,1),imshow(I);title('原始图像');
    subplot(3,3,2),imshow(J1);title('Sobel检测图像');
    J2 = edge(I,'Roberts');
    subplot(3,3,3),imshow(J2);title('Roberts检测图像');
    J3 = edge(I,'Prewitt');
    subplot(3,3,4),imshow(J3);title('Prewitt检测图像');
    J4 = edge(I,'log');
    subplot(3,3,5),imshow(J4);title('log检测图像');
    J5 = edge(I,'Canny');
    subplot(3,3,6),imshow(J5);title('Canny检测图像');
    J6 = edge(I,'zerocross');
    subplot(3,3,7),imshow(J6);title('zerocross检测图像');
    

    2、形态学变换

    (1)图像腐蚀

      se = strel('disk' ,3);

      resultImage=imerode(originalImage, se);

    %% 图像腐蚀
    I = imread('cameraman.tif');
    se = strel('disk',3);
    J = imerode(I,se);
    subplot(1,2,1),imshow(I);
    subplot(1,2,2),imshow(J);
    

    (2)膨胀

      se = strel('disk' ,3);

      resultImage=imdilate(originalImage, se);

    %% 膨胀
    I = imread('cameraman.tif');
    se = strel('disk',3);
    J = imdilate(I,se);
    subplot(1,2,1),imshow(I);
    subplot(1,2,2),imshow(J);
    

    (3)开运算

      先腐蚀,后膨胀。

      A被B形态学开运算表示为:A•B

      A被B腐蚀,再用B膨胀结果。

      se = strel('square' ,3);

      resultImage=imopen(originalImage, se);

    %% 开运算
    I = imread('cameraman.tif');
    se = strel('square',3);
    J = imopen(I,se);
    subplot(1,2,1),imshow(I);
    subplot(1,2,2),imshow(J);
    

    (4)闭运算

      先膨胀,后腐蚀。

      A被B形态学闭运算表示为:A•B

      A被B膨胀,再用B腐蚀结果。

      se = strel('square' ,3);

      resultImage=imclose(originalImage, se);

    %% 闭运算
    I = imread('cameraman.tif');
    se = strel('square',3);
    J = imclose(I,se);
    subplot(1,2,1),imshow(I);
    subplot(1,2,2),imshow(J);
    

    3、图像增强

    (1)直方图

      imhist(原图像)

    %% 直方图
    I = imread('cameraman.tif');
    imhist(I);
    

    ① 直方图的均衡化:

      经过均衡化处理的图像,像素占有更多的灰度级并且分布更均衡。这样的图像,具有较高的对比图。

      处理结果=histeq(原始图像)

    %% 均衡化
    I = imread('cameraman.tif');
    J = histeq(I);
    subplot(2,2,1),imshow(I);
    subplot(2,2,2),imshow(J);
    subplot(2,2,3),imhist(J);
    

    (2)灰度变换

      结果=imadjust(原始图像,[原值范围],[新值范围])

      原始图像:自动切换到值在[0,1]

      [原值范围]:[值1,值2]

      [新值范围]:[值3,值4]

    %% 灰度变换
    I = imread('cameraman.tif');
    J1 = imadjust(I,[0.3 0.7],[0 1]);
    J2 = imadjust(I,[0 1],[1 0]); % 负片
    subplot(1,3,1),imshow(I);
    subplot(1,3,2),imshow(J1);
    subplot(1,3,3),imshow(J2);
    

    (3)灰度对数变换

      增强一幅图像中较暗部分的细节。

      目标图像=log(原始图像);

      代码:J=log(im2double(I)+1);

    I = imread('cameraman.tif');
    J = log(im2double(I)+10);
    subplot(1,2,1),imshow(I);
    subplot(1,2,2),imshow(J,[]);
    

    (4)中值滤波

      处理结果=medfilt2(原始图像);

    %% 中值滤波 
    I = imread('cameraman.tif');
    J = medfilt2(I);
    subplot(1,2,1),imshow(I);
    subplot(1,2,2),imshow(J);
    

  • 相关阅读:
    java静态代码分析工具infer
    Go的安装和使用/卸载/升级、安装指定版本
    ldap服务器OpenLDAP安装使用
    python2 和 python3兼容写法
    ldap客户端以及jenkins的配置
    mac下java的安装和升级以及相关环境设置
    常见高危安全漏洞
    XFS: Cross Frame Script (跨框架脚本) 攻击。
    WEB渗透测试之三大漏扫神器
    编写自己的Acunetix WVS漏洞扫描脚本详细教程
  • 原文地址:https://www.cnblogs.com/fengxb1213/p/12868214.html
Copyright © 2020-2023  润新知