資源簡介
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??圖像去噪?濾波?銳化?邊緣檢測程序\
- 上一篇:基于SIMUli
nk仿真的BUCK電路 - 下一篇:雙饋風力發電機PID控制變槳程序
評論
共有 條評論