一、实验目的
(1)了解图像增强的目的及意义,加深对图像增强的
感性认识,巩固所学的图像增强的理论知识和相
关算法。
(2)熟练掌握直方图均衡化和直方图规定化的计算过
程。
(3)熟练掌握空域滤波中常用的平滑和锐化滤波器。
(4)熟练掌握低通和高通滤波器的使用方法,明确不
同性质的滤波器对图像的影响和作用。
(5)掌握最简单的伪彩色变换方法。
二、实验内容
(1)任意选择几幅图像,对其进行平滑处理,用
不同的平滑模板,对结果进行分析。
(2)任意选择几幅图像,对其进行中值滤波,用
不同的滤波模板对结果进行分析。
(3)任意选择几幅图像,对其进行梯度锐化,选
择不同的阈值参数,观察图像有何变化。
(4)对图像进行伪彩色变换,比较彩色增强后的
图像与原图像有何不同。
三、实验代码及结果、分析
(1)平滑滤波----邻域平均法
I=imread('E:\JZ数字图像处理\实验3\shiyansan.jpg');
I=rgb2gray(I);
J=imnoise(I,'salt & pepper',0.03); %加均值为0,方差为0.03的椒盐噪声G=imnoise(I,'gaussian',0.03); %加均值为0,方差为0.03的高斯噪声。
A=fspecial('average',[4,4]); %4x4均值滤波
A1=fspecial('average',[6,6]); %6x6均值滤波
A2=fspecial('average',[8,8]); %8x8均值滤波
A3=fspecial('average',[10,10]); %10x10均值滤波
J1= imfilter(J,A); %imfilter均值滤波函数
J2= imfilter(J,A1);
J3= imfilter(J,A2);
J4= imfilter(J,A3);
G1= imfilter(G,A);
G2= imfilter(G,A1);
G3= imfilter(G,A2);
G4= imfilter(G,A3);
figure(1)
subplot(2,3,1),imshow(I),title('原图像');
subplot(2,3,4),imshow(I),title('原图像');
subplot(2,3,2),imshow(J),title('加入椒盐噪声'); %显示有椒盐噪声图像
subplot(2,3,5),imshow(G),title('加入高斯噪声'); %显示有高斯噪声图像
subplot(2,3,3),imshow(J1),title('4×4均值滤波');%显示有椒盐噪声图像的滤波
subplot(2,3,6),imshow(G1),title('4×4均值滤波'); %显示有高斯噪声图像的滤波
figure(2);
subplot(2,3,1),imshow(I),title('原图像');
subplot(2,3,2),imshow(J),title('加入椒盐噪声'); %显示有椒盐噪声图像
subplot(2,3,4),imshow(J1),title('4×4');
subplot(2,3,3),imshow(J2),title('6×6');
subplot(2,3,5),imshow(J3),title('8×8');
subplot(2,3,6),imshow(J4),title('10×10');
figure(3)
subplot(2,3,1),imshow(I),title('原图像');
subplot(2,3,2),imshow(G),title('加入高斯噪声'); %显示有高斯噪声图像
subplot(2,3,4),imshow(G1),title('4×4');
subplot(2,3,3),imshow(G2),title('6×6');
subplot(2,3,5),imshow(G3),title('8×8');
subplot(2,3,6),imshow(G4),title('10×10');
(2)平滑滤波----中值法
I=imread('E:\大三课件\大三下\数字图像处理\实验\实验3\shiyansan.jpg');
I=rgb2gray(I);
temp = I;
I = double(I);
%Robert梯度
w1 = [-1 0; 0 1];
w2 = [0 -1;1 0];
G1 = imfilter(I,w1,'corr','replicate');
G2 = imfilter(I,w2,'corr','replicate');
G = abs(G1)+abs(G2);
figure(1);
subplot(2,2,1);imshow(temp),title('原图像');
subplot(2,2,2);imshow(abs(G1),[]),title('w1滤波');
subplot(2,2,3);imshow(abs(G2),[]),title('w2滤波');
subplot(2,2,4);imshow(G,[]),title('Robert梯度');
%sobel梯度
w11 = fspecial('sobel');
w21 = w11';
G11 = imfilter(I,w11);
G21 = imfilter(I,w21);
G1 = abs(G11)+abs(G21);
figure(2);
subplot(2,2,1);imshow(temp),title('原图像');
subplot(2,2,2);imshow(G11,[]),title('水平sobel');
subplot(2,2,3);imshow(G21,[]),title('竖直sobel');
subplot(2,2,4);imshow(G1,[]),title('sobel');
%拉普拉斯滤波
w12 = [0 -1 0;-1 4 -1;0 -1 0];
L12 = imfilter(I,w12,'corr','replicate');
figure(3);
subplot(1,2,1);imshow(temp),title('原图像');
subplot(1,2,2);imshow(abs(L12),[]);
im=imread('E:\JZ数字图像处理\实验3\shiyansan.jpg');
gray=rgb2gray(im);
I=double(gray);
[m,n]=size(I);
L=256;
for i=1:m
for j=1:n
if I(i,j)<=L/2 %绿色通道
R(i,j)=0;
G(i,j)=2*I(i,j);
B(i,j)=L;
else if I(i,j)<=L/4 %蓝色通道
R(i,j)=0;
G(i,j)=L;
B(i,j)=-4*I(i,j)+2*L;
else if I(i,j)<=3*L/2 %红色通道
R(i,j)=2*I(i,j)-2*L;
G(i,j)=L;
B(i,j)=0;
else
R(i,j)=L;
G(i,j)=-4*I(i,j)+4*L;
B(i,j)=0;
end
end
end
end
end
for i=1:m
for j=1:n
rgbim(i,j,1)=R(i,j);
rgbim(i,j,2)=G(i,j);
rgbim(i,j,3)=B(i,j);
end
end
rgbim=rgbim/256;
figure(1);
subplot(1,2,1),imshow(gray),title('原图');
subplot(1,2,2),imshow(rgbim),title('伪彩色变换');