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图像进行锐化处理的结果');
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • java最新漏洞_JavaMelody XXE漏洞(CVE-2018-15531)分析

    java最新漏洞_JavaMelody XXE漏洞(CVE-2018-15531)分析0x01背景JavaMelody是一款在生产和QA环境中对JAVA应用以及应用服务器(Tomcat、Jboss、Weblogic)进行监控的工具,可以通过图表给出监控数据,方便研发运维等找出响应瓶颈、优化响应等。近日发布了1.74.0版本,修复了一个XXE漏洞,漏洞编号CVE-2018-15531。攻击者利用漏洞,可以读取JavaMelody服务器上的敏感信息。0x02漏洞分析漏洞修复的com…

  • Linux查看java进程路径

    Linux查看java进程路径1.找到进程IDps-ef|grepjava2.进入进程目录cd/proc/进程ID3.查看cwd路径找到cwd对应的路径就是jar包的路径以下是我的操作截图

  • matlab 画折线图

    matlab 画折线图代码:效果图:x=1:1:5就是x轴上的数据,从1开始到5结束(即应该有五个数据),每个数据的间隔是1.把开始的1改成2,结束的5改成6,整个折线图就会向右平移一个单位。plot(x,a,’-*b’,x,b,’-or’)是设置折线图中相应点和线的特征的,函数说明如下:对于‘’内的线条形状,总结了如下图:线型:线条宽度:指定线条的宽度,取值为整数(…

  • SpringMvc 最新jar包下载[通俗易懂]

    SpringMvc 最新jar包下载[通俗易懂]下载springmvcJar最终下载地址:https://repo.spring.io/simple/libs-release-local/org/springframework/spring/步骤:https://repo.spring.io/simple/libs-release-local/https://repo.spring.io/simple/libs…

  • hive 数据类型_类型数据

    hive 数据类型_类型数据hive大数据数据类型

  • pycharm 重装后双击无反应的一种解决方法

    pycharm 重装后双击无反应的一种解决方法问题描述之前安装的2018版本的pycharm,更新失败之后自动删除,所以重装了一个2020.1,然后发现双击无反应。解决方法用下面方法解决后,记录一下过程:在“添加和删除程序”中发现了pycharm2018版本的程序名,但目录文件已被删除。于是通过注册表编辑器(cmd输入regedit),在编辑→查找中查找pycharm发现了pycharm2018项,将其删除后添加或删除程序里…

发表回复

您的电子邮箱地址不会被公开。

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