?? aver_filter.m
字號:
function aver_filter( Image_name,N,out_filename )
%非線性平滑濾波器G1 平均
%輸入參數 文件名 N為模板大小(正奇數)
%讀取圖像-------------
if nargin<3
disp('輸入參數錯誤!!!');
return;
end
image=imread(Image_name);
if isrgb(image)
image=rgb2gray(image);
end
% 圖像擴展--------------
[size_m,size_n]=size(image);
image_ex=zeros(size_m+N-1,size_n+N-1);
% 賦值
for row=1:size_m
for col=1:size_n
image_ex(row+(N-1)/2,col+(N-1)/2)=image(row,col);
end
end
% 對每個象素------------------
pattern_plate=zeros(N,N); %模板
image_new=zeros(size_m,size_n); %濾后圖像矩陣
for row=1:size_m
for col=1:size_n
% 取模板的元素
for row_p=1:N
for col_p=1:N
pattern_plate(row_p,col_p)=image_ex(row+row_p-1,col+col_p-1);
end
end
% 求模板的平均值得濾后圖像矩陣
image_new(row,col)=mean2(pattern_plate);
end
end
% 輸出---------------
imshow(image_new,[]);
title('濾后圖像');
imwrite( uint8(image_new),out_filename )
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -