资源简介

matlab图像去噪 滤波 锐化 边缘检测案例,包括详细的代码资料和讲解注释

资源截图

代码片段和文件信息

%%  学习目标:一个图像处理的经典综合案例
clear;clc;close all
%%   读取图像
I=imread(‘1.jpg‘);
try
    I=rgb2gray(I);    %如果是RGB图像,则转化为灰度图
end

%%    添加噪声
I=imnoise(I‘salt & pepper‘0.04);     % 叠加密度为0.04的椒盐噪声
figure
imshow(I)
title(‘原图‘)

%%   图像去噪
I=medfilt2(I[2 4]);   %采用二维中值滤波函数对图像滤波
figure
imshow(I)
title(‘去噪之后的图像‘)

%%   图像锐化
[MN]=size(I);   % 计算图像尺寸
f=double(I);     % 数据类型转换,MATLAB不支持图像的无符号整型的计算
g=fft2(f);       % 二维傅立叶变换,得到频域信息
g=fftshift(g);   % 0频率移到(M/2N/2)处

n=2;             % 二阶巴特沃斯滤波器
D0=3;            % 巴特沃斯滤波器的D0,D0越大,保留的高频信号就越少(对于不同的图片,可以自行调节,以便得到好的效果)
for i=1:M
    for j=1:N 
        D=sqrt((i-M/2)^2+(j-N/2)^2);   %计算离0频率(M/2N/2)的距离
        h=1/(1+(D0/D)^(2*n));          %计算传递函数的值
        output(ij)=h*g(ij);          %高通滤波之后(ij)处的值
    end
end
result=ifftshift(output);              %与g=fftshift(g)对应,还原回去
I=ifft2(result);                       %傅里叶反变换
I=uint8(real(I));                      %得到滤波之后的图像(锐化之后的图像)
figure
imshow(I)                               %滤波后图像显示
title(‘锐化之后的图像‘)

%%   直方图均衡化处理
I=histeq(I);                             %得到直方图均衡化之后的图像
figure
imshow(I)
title(‘直方图均衡之后的图像‘)

%%   边缘检测
I1=edge(I‘prewitt‘);
I2=edge(I‘roberts‘);
I3=edge(I‘sobel‘);

figure
imshow(I1)
title(‘prewitt边缘检测之后的图像‘)

figure
imshow(I2)
title(‘roberts边缘检测之后的图像‘)

figure
imshow(I3)
title(‘sobel边缘检测之后的图像‘)
%% 
%%   QQ:1960009019
%%   微信:13299109228
%%  微信公众号:大仙一品堂



 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        5551  2017-06-07 10:50  8  图像去噪 滤波 锐化 边缘检测程序\1.jpg
     文件        1775  2019-10-11 15:28  8  图像去噪 滤波 锐化 边缘检测程序\chengxu.m
     目录           0  2018-03-20 09:37  8  图像去噪 滤波 锐化 边缘检测程序\

评论

共有 条评论