最近的项目涉及到了图像处理领域,小小研究了一番,同时收集资料实现了几个基础功能。
一、图像反转
I=imread('input_image.jpg');
J=double(I);
J=-J+(256-1); %图像反转线性变换
H=uint8(J);
subplot(3,3,4),imshow(H);
title('图像反转线性变换');
axis([50,250,50,200]);
axis on;
二、 灰度线性变换
I=imread('input_image.jpg');
subplot(3,3,1),imshow(I);
title('原始图像');
axis([50,250,50,200]);
axis on;
I1 = rgb2gray(I);
subplot(3,3,2),imshow(I1)
title('灰度图像')
axis([50,250,50,200]);
grid on;
axis on;
K=imadjust(I1,[0.3 0.7],[]);
subplot(3,3,3),imshow(K);
title('线性变换图像[0.3 0.7]');
axis([50,250,20,200]);
grid on;
axis on;
三、
非线性变换
I=imread('input_image.jpg');
I1 = rgb2gray(I);
subplot(3,3,5),imshow(I1);
title('灰度图像');
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
J=double(I1);
J=40*(log(J+1));
H=uint8(J);
subplot(3,3,6),imshow(H);
title('对数变换图像');
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
上述代码结果:
I=imread('input_image.jpg');
figure;
I=rgb2gray(I);
subplot(2,2,1);
imshow(I);
subplot(2,2,2);
imhist(I);
title('直方图均衡化图像');
I1 = histeq(I);
subplot(2,2,3);
imshow(I1);
subplot(2,2,4);
imhist(I1);
上述代码结果:
I=imread('input_image.jpg');
figure;
subplot(231)
imshow(I)
title('原始图像')
I=rgb2gray(I);
I1=imnoise(I,'salt & pepper',0.02);
subplot(232)
imshow(I1)
title('添加椒盐噪声的图像')
k1=filter2(fspecial('average',3),I1)/255; %进行3*3模板平滑滤波
k2=filter2(fspecial('average',5),I1)/255; %进行5*5模板平滑滤波
k3=filter2(fspecial('average',7),I1)/255; %进行7*7模板平滑滤波
k4=filter2(fspecial('average',9),I1)/255; %进行9*9模板平滑滤波
subplot(233),imshow(k1);title('3*3模板平滑滤波');
subplot(234),imshow(k2);title('5*5模板平滑滤波');
subplot(235),imshow(k3);title('7*7模板平滑滤波');
subplot(236),imshow(k4);title('9*9模板平滑滤波');
上述代码结果:
figure;
I=imread('input_image.jpg');
I=rgb2gray(I);
subplot(231),imshow(I);
title('原图像');
J=imnoise(I,'salt & pepper',0.02);
subplot(232),imshow(J);
title('添加椒盐噪声图像');
k1=medfilt2(J); %进行3*3模板中值滤波
k2=medfilt2(J,[5,5]); %进行5*5模板中值滤波
k3=medfilt2(J,[7,7]); %进行7*7模板中值滤波
k4=medfilt2(J,[9,9]); %进行9*9模