lena图像,直方图均衡

lena图像,直方图均衡%对lena图像进行直方图均衡,给出处理前后的图像及其直方图%用3*3的均值滤波器处理lena图像%对lena图像施加(Pa=Pb=0.1)的椒盐噪声,然后采用3*3中值滤波器处理%用Soble算子对lena图像进行锐化处理%对lena图像进行直方图均衡,给出处理前后的图像及其直方图clearall;closeall;image=imread(‘D:\lena.bmp’);im

大家好,又见面了,我是你们的朋友全栈君。

%对lena图像进行直方图均衡,给出处理前后的图像及其直方图
%用3*3的均值滤波器处理lena图像
%对lena图像施加(Pa=Pb=0.1)的椒盐噪声,然后采用3*3中值滤波器处理
%用Soble算子对lena图像进行锐化处理
%对lena图像进行直方图均衡,给出处理前后的图像及其直方图
clear all;close all;
image=imread('D:\lena.bmp');

image_d=double(image);
srcprobability=zeros(1,256);
[M,N]=size(image);
for m=1:M
    for n=1:N
        srcprobability(image_d(m,n)+1)=srcprobability(image_d(m,n)+1)+1;
    end
end
srcprobability=srcprobability./(M*N);

%进行直方图均衡化处理
Sk=zeros(1,256);
for i=1:256
    if i==1
        Sk(1)=srcprobability(1);
    else
        Sk(i)=Sk(i-1)+srcprobability(i);
    end
end

for i=1:256
    Sk(i)=round(Sk(i)*255);
end

%将直方图均衡化的结果写到目标图像
image_hist=zeros(M,N);
for m=1:M
    for n=1:N
        image_hist(m,n)=Sk(image_d(m,n));
    end
end

drcprobability=zeros(1,256);
for m=1:M
    for n=1:N
        drcprobability(image_hist(m,n)+1)=drcprobability(image_hist(m,n)+1)+1;
    end
end

drcprobability=drcprobability./(M*N);
clear Sk;

figure(1)
subplot(1,2,1);
bar(srcprobability);
title('输入图像的直方图');
subplot(1,2,2);
bar(drcprobability);
title('进行直方图均衡化后的直方图');

figure(2)
imshow(image);
title('原始lena图像');

figure(3)
image_hist=uint8(image_hist);
imshow(image_hist);
title('直方图均衡化处理后的lena图像');

%用3*3的均值滤波器处理lena图像
image_ave=zeros(M,N);
%边缘值不处理
for i=1:N
    image_ave(1,i)=image_d(1,i);
    image_ave(M,i)=image_d(M,i);
end
for i=2:M-1
    image_ave(i,1)=image_d(i,1);
    image_ave(i,N)=image_d(i,N);
end
for m=2:M-1
    for n=2:N-1
        template=image_d(m-1:m+1,n-1:n+1);
        template=reshape(template,1,9);
        image_ave(m,n)=sum(template)./9;
    end
end

figure(4)
image_ave=uint8(image_ave);
imshow(image_ave);
title('用3*3的均值滤波器对lena图像进行处理后的结果');

%对lena图像施加(Pa=Pb=0.1)的椒盐噪声,然后采用3*3中值滤波器处理
image_noise=imnoise(image,'salt & pepper',0.1); %加入椒盐躁声
image_noise_d=double(image_noise);
image_mid=zeros(M,N);
%边缘值不处理
for i=1:N
    image_mid(1,i)=image_noise_d(1,i);
    image_mid(M,i)=image_noise_d(M,i);
end
for i=2:M-1
    image_mid(i,1)=image_noise_d(i,1);
    image_mid(i,N)=image_noise_d(i,N);
end
for m=2:M-1
    for n=2:N-1
        template=image_noise_d(m-1:m+1,n-1:n+1);
        template=reshape(template,1,9);
        image_mid(m,n)=median(template);
    end
end

figure(5)
clear image_noise_d;
imshow(image_noise);
title('施加(Pa=Pb=0.1)的椒盐噪声的lena图像');

figure(6)
image_mid=uint8(image_mid);
imshow(image_mid);
title('用3*3的中值滤波器对加(Pa=Pb=0.1)的椒盐噪lena图像进行处理后的结果');       

%用Soble算子对lena图像进行锐化处理
image_soble=zeros(M,N);
%边缘值不处理
for i=1:N
    image_soble(1,i)=image_d(1,i);
    image_soble(M,i)=image_d(M,i);
end
for i=2:M-1
    image_soble(i,1)=image_d(i,1);
    image_soble(i,N)=image_d(i,N);
end
for m=2:M-1
    for n=2:N-1
        template=image_d(m-1:m+1,n-1:n+1);
        template=reshape(template,1,9);
        Gx=abs(template(7)+2*template(8)+template(9)-template(1)-2*template(2)-template(3));
        Gy=abs(template(3)+2*template(6)+template(9)-template(1)-2*template(4)-template(7));
        image_soble(m,n)=Gx+Gy;
    end
end

figure(7)
clear image_d;
image_soble=uint8(image_soble);
imshow(image_soble);
title('用Soble算子对lena图像进行锐化处理的结果');
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150982.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • macbookpro找不到麦克风_双系统win7无法启动

    macbookpro找不到麦克风_双系统win7无法启动问题描述通过系统提供的启动转换助理装了win10之后,发现siri提示找不到麦克风,偏好设置中也看不到输入设备解决方案终端执行以下命令后,输入密码即可.无需重启.sudokillallcoreaudiod…

    2022年10月5日
    5
  • 计算机网络放大器的作用,运算放大器

    计算机网络放大器的作用,运算放大器运算放大器(简称“运放”)是具有很高放大倍数的电路单元。在实际电路中,通常结合反馈网络共同组成某种功能模块。它是一种带有特殊耦合电路及反馈的放大器。其输出信号可以是输入信号加、减或微分、积分等数学运算的结果。由于早期应用于模拟计算机中用以实现数学运算,因而得名“运算放大器”。[1]由于早期应用于模拟计算机中,用以实现数学运算,故得名“运算放大器”。运放是一个从功能的角度命名的电路单元,可以由分立的…

    2022年5月22日
    33
  • pycharm中debug无法调试_pycharm配置debug

    pycharm中debug无法调试_pycharm配置debug在多次跑项目中遇到情况,pacharm突然就无法运行项目了,表现就是run和debug两个选项按钮全部变灰色无法点击。造成这种情况的原因是因为我在一个很大的文件下创建了新的文件,每次运行都要为所有文件建造索引,文件很大的话这个时间就比较长,表现就是右下角有个进度条一直在刷新。这个时候的做法就是:右键文件名——> Markdirectoryas… ——>Exclude…

    2022年8月29日
    9
  • 关于变量在for内部new还是先在循环外定义的一些思考「建议收藏」

    关于变量在for内部new还是先在循环外定义的一些思考「建议收藏」关于变量在for内部new还是先在循环外定义的一些思考

    2022年6月13日
    30
  • 开发版sha1_调试版去衣游戏密码

    开发版sha1_调试版去衣游戏密码1.调试版的SHA1,是在调试的过程中生成,而且也没有密码,win+r打开“运行”,输入cmd打开命令提示符2.在命令提示符中输入“cd.android”(中间有个空格),这一步的操作前提是你的JAVA_HOME的环境变量有配置到你jdk中bin的绝对路径,相信大家在学Java时,这就已经没问题了吧3.让后将这一命令keytool-list-v-keystoredebug.keystore右击粘贴复制到你的命令提示符中,至于命令提示符中的粘贴复制可以参考以下经验,然后回车

    2022年8月10日
    9
  • 匹配滤波器及matlab仿真

    匹配滤波器及matlab仿真随机信号处理笔记:匹配滤波器——南京理工大学顾红老师的《随机信号处理》浅析文章目录随机信号处理笔记:匹配滤波器1.线性滤波器输出端信噪比2.匹配滤波器的传输函数和冲激响应2.1复函数的施瓦兹不等式2.2传输函数求解3.匹配滤波器的性质3.1匹配滤波器的最大峰值信噪比3.2匹配滤波器的幅频特性相频特性3.3匹配滤波器的物理可实现性3.4输出信号和噪声3.5匹配滤波器的时延适应性3.6匹配滤波器的频移不适应性3.7输出信号频谱与输入信号频谱关系4.匹配滤波器的信号处理SNR增益4.1matlab仿真匹配

    2022年6月1日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号