• 一个matlab数字图像处理程序的解释


    clc;                                                   %clc是清除command window里的内容
    clear all;                                             %clear是清除workspace里的变量
    close all;                                             %close all来关闭所有已经打开的图像窗口
    image_ori = imread('skeleton_orig.bmp');               %读取图像数据
    image_ori = rgb2gray(image_ori);                       % 将rgb模式转换成灰度图
    figure;                                                %画图
    subplot(2,4,1);                                        %把区域分成2行4列,并把图像显示到第一个
    imshow(image_ori);                                     %显示图像
    title('a.original image');                             %显示标题
    image_ext = [zeros(1,500);image_ori;zeros(1,500)]';    %分别在上下两边加一行,并转置
    image_ext = [zeros(1,802);image_ext;zeros(1,802);]';   %分别在左右两边加一列,并转置
    image_double = im2double(image_ext);                   %将imdata_add转换成双精度
    
    % lapa_modelace Operating 
    lapa_mode = [-1,-1,-1;-1,8,-1;-1,-1,-1];                %拉普拉斯变换用模板[-1,-1,-1;-1,8,-1;-1,-1,-1]; 
    lapa_mode = lapa_mode(:);                               %转换成列矩阵
    for x = 2:1:801
        for y = 2:1:501
        A =image_double([x-1:x+1],[y-1:y+1]);               %从image_double中以(x,y)为中心取出一个3*3的矩阵 
        image_lapa(x-1,y-1) = lapa_mode'*A(:);              %将取出的矩阵与模板进行拉普拉斯变换取得的值放在image_lapa的(x-1,y-1)位置
        end
    end
    subplot(2,4,2);
    imshow(image_lapa);
    title('b.lapalace image');
    subplot(2,4,3);
    
    %Sharpening Operating
    image_ab_sha = image_lapa+im2double(image_ori);           
    imshow(image_ab_sha);
    title('c.a+b sharpening image');
    
    %Grads Operating
    sobel_mode_1= [-1,-2,-1;0,0,0;1,2,1];                     %定义梯度处理的一个掩膜
    sobel_mode_1= sobel_mode_1(:);
    sobel_mode_2 = [-1,0,1;-2,0,2;-1,0,1];                    %定义梯度处理的另一个掩膜
    sobel_mode_2 = sobel_mode_2(:);
    for x = 2:1:801
        for y = 2:1:501
        A =image_double([x-1:x+1],[y-1:y+1]); 
        mid_1(x-1,y-1) = sobel_mode_1'*A(:); 
        mid_2(x-1,y-1) = sobel_mode_2'*A(:);
        end
    end
    image_grad = abs(mid_1)+abs(mid_2);                        %对gx、gy绝对值化,然后求和
    subplot(2,4,4);
    imshow(image_grad);
    title('d.grads image');
    
    %Smoothing Operating
    Mxy_Ext = [zeros(2,500);image_grad;zeros(2,500)];           %分别在上下两边加两行
    Mxy_Ext = [zeros(2,804);Mxy_Ext';zeros(2,804)]';            %先将Mxy_Ext转置,然后分别在左右两边加一列,最后将所得结果再转置
    Linear_smooth = ones(5,5);                                  %创建一个5*5矩阵,初始值全是1
    Linear_smooth = Linear_smooth(:);                           %将矩阵Linear_smooth转换成列矩阵
    for x = 3:1:802                                             %大循环,x从3--802,步进是1
        for y = 3:1:502                                         %小循环,y从3--502,步进是1
            A = Mxy_Ext([x-2:x+2],[y-2:y+2]);                   %以Emx_Ext(x,y)为中心,截取5*5矩阵复制到A中
            image_smooth(x-2,y-2) = Linear_smooth'*A(:);         %将获取的矩阵值各个值求和然后放在新矩阵image_smooth的(x-2,y-2)位置
        end
    end
    image_smooth = image_smooth/25;                             %求平均值
    subplot(2,4,5);                                             %把区域分成1行4列,并把图像显示到第一个
    imshow(image_smooth);                                       %显示图像
    title('e.smoothing image');                                 %显示标题
    
    %Masking Operating 
    image_mask = image_ab_sha.*image_smooth;                    %点乘
    subplot(2,4,6);
    imshow(image_mask);
    title('f.Masking image');
    
    %Sharpening Operating
    image_af_sha = im2double(image_ori) + image_mask;
    subplot(2,4,7);
    imshow(image_af_sha);
    title('g.a+f sharpening image');
    
    %Exponential  Transform
    image_fin = image_af_sha.^0.5;                              %幂律变换 
    subplot(2,4,8);
    imshow(image_fin);
    title('h.final result');
  • 相关阅读:
    EF4 中Selftrack entity 错误用于单web开发中要注意的地方
    C#验证文件类型
    简单实际的方式分隔Admin 区域
    SQLite 资源汇总
    C# Enum 类型的本地化
    Associations in EF Code First CTP5: Part 1 – Complex Types
    asp.net网站管理工具 的 地址(Web Site Administration Tool )
    wordpress 文章缩略图功能
    Sql Server 2008 Fulltext search Error: Word breaking timed out for the fulltext query string.
    用javascript创建第一个windows8 metro应用
  • 原文地址:https://www.cnblogs.com/amanlikethis/p/3423445.html
Copyright © 2020-2023  润新知