资源简介

该代码实现了图像的滤波处理,这段代码给出了三种滤波矩阵,包括图像平滑(低通滤波器)、图像边缘提取(高通滤波器)等。用户下载后可以根据自己需要修改滤波矩阵和参数值,以便实现特殊的功能。为了形象的说明滤波效果,代码执行后可以看到滤波前后滤波后的对比图像。

资源截图

代码片段和文件信息

clc;
clear all;
close all;

FLAG=input(‘\nWhich filter do you prefer?\n1  1/9*[111;111;111]\n2  1/24*[1-21;-212-2;1-21]\n3  1/24*[-1-2-1;-212-2;-1-2-1]\n(Please input 1 or 2 or 3)\n‘);

%%%%%%%%%%%%%%%%%%%%%%%
%%%  Image Reading  %%%
%%%%%%%%%%%%%%%%%%%%%%%
%F indicate filter matrixchange F can get varaious filtered images
if FLAG==1
    F=1/9*[111;111;111];
end
if FLAG==2
    F=1/24*[1-21;-212-2;1-21];
end
if FLAG==3
    F=1/24*[-1-2-1;-212-2;-1-2-1];
end
I0=imread(‘yourimage.jpg‘);
I=rgb2gray(I0); %Convert rgb image I0 to 8-bit grayscale image and I indicate the gray image
J0=double(I);
J=J0; %J indicate filtered image

%%%%%%%%%%%%%%%%%%%%%%%
%%% Prearrangement  %%%
%%%%%%%%%%%%%%%%%%%%%%%
[IheightIwidth]=size(I); %Size of the gray image
[FheightFwidth]=size(F); %Size of the filter matrix
remheight=mod(Fheight2);
remwidth=mod(Fwidth2);
if remheight==0
    Fhalfheight=(Fheight/2)-1; %i.e. if Fheight=4 then Fhalfheight=1
    Fheight_mark=Iheight-Fhalfheight-1; %This is the maximun of m if the filter center is (mn)
    Hfilter_mark=Fhalfheight+1; %This is the maximun increment of m when implementing the filtering 
else
    Fhalfheight=(Fheight-1)/2; %i.e. if Fheight=3 then Fhalfheight=1
    Fheight_mark=Iheight-Fhalfheight; %This is the maximun of m if the filter center is (mn)
    Hfilter_mark=Fhalfheight; %This is the maximun increment of m when implementing the filtering 
end
if remwidt

评论

共有 条评论