matlab数字图像处理的相关应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.图像类型转换,转换为灰度图像
I=imread('C:\Users\SXN\Desktop\1.jpg');
J=rgb2gray(I);
figure,imshow(I);
figure,imshow(J);
转换为索引图像
RGB=imread('C:\Users\SXN\Desktop\1.jpg');
[X,map]=rgb2ind(RGB,128);
figure,imshow(RGB);
figure,imshow(X,map);
2.图像直方图
I=imread('C:\Users\SXN\Desktop\1.jpg');
J=I(:,:,1);
imshow(J);
figure,imhist(J,256);
3.领域平均
I=imread('C:\Users\SXN\Desktop\1.jpg');
J=I(:,:,1);
H=medfilt2(J,[7,7]);
figure,imshow(H);
4.图像梯度算子锐化
a=imread('C:\Users\SXN\Desktop\1.jpg');
b=double(a);
c=b;
xy=imfinfo('C:\Users\SXN\Desktop\1.jpg');
x=xy.Width;
y=xy.Height;
for j=3:x-2,
for i=3:y-2,
c(i,j)=abs(b(i,j)-b(i+1.j+1))+abs(b(i+1,j)-b(i,j+1));
end
end
imshow(c,[0 256],'notruesize');
a=imread('C:\Users\SXN\Desktop\1.jpg');
b=double(a);
c=b;
xy=imfinfo('C:\Users\SXN\Desktop\1.jpg');
x=xy.Width;
y=xy.Height;
for j=3:x-2,
for i=3:y-2,
c(i,j)=abs(b(i,j)-b(i+1.j+1))+abs(b(i+1,j)-b(i,j+1))+100;
end
end
imshow(c,[0 256],'notruesize');
5.拉普拉斯算子锐化
a=imread('C:\Users\SXN\Desktop\1.jpg');
b=double(a);
c=b;
xy=imfinfo('C:\Users\SXN\Desktop\1.jpg');
x=xy.Width;
y=xy.Height;
for j=3:x-2,
for i=3:y-2,
c(i,j)=b(i+1,j)+b(i,j+1)+b(i-1,j)+b(i,j-1)-4*b(i,j)+100;
end
end
imshow(c)
a=imread('C:\Users\SXN\Desktop\1.jpg');
b=double(a);
c=b;
xy=imfinfo('C:\Users\SXN\Desktop\1.jpg');
x=xy.Width;
y=xy.Height;
for j=3:x-2,
for i=3:y-2,
c(i,j)=abs(b(i+1,j)+b(i,j+1)+b(i-1,j)+b(i,j-1)-4*b(i,j));
if c(i,j)>5
c(i,j)=c(i,j)+100;
end
end
end
imshow(c)
6.对图像进行线形运算
clear all;
a=imread('C:\Users\SXN\Desktop\1.jpg');
figure,imshow(a);
xlabel('(a)');
b=a+45;
figure,imshow(b);
xlabel('(b)');
c=1.8*a;
figure,imshow(c);
xlabel('(c)');
d=0.6*a;
figure,imshow(d);
xlabel('(d)');
7灰度变换增强
对比度增强
clear all;
a=imread('C:\Users\SXN\Desktop\1.jpg');
b=imadjust(a,[0.3,0.7],[]);
subplot(1,2,1);imshow(a);
subplot(1,2,2);imshow(b);
(1)图像预处理将其转换为灰度图象
clear all
I=imread('C:\Users\SXN\Desktop\1.jpg');
imshow(I);
imwrite(rgb2gray(I),'C:\Users\SXN\Desktop\1.jpg');
I=rgb2gray(I);
figure,imshow(I)
title('»Ò¶È»¯ºóµÄͼÏñ')
绘制直方图
[m,n]=size(I);
GP=zeros(1,256);
for k=0:255
GP(k+1)=length(find(I==k))/(m*n); end
figure,bar(0:255,GP,'g') title('Ô-ͼÏñÖ±·½Í¼')
xlabel('»Ò¶ÈÖµ')
ylabel('³öÏÖ¸ÅÂÊ')
直方图均衡化
S1=zeros(1,256);
for i=1:256
for j=1:i
S1(i)=GP(j)+S1(i); end
end
S2=round(S1*256); for i=1:256
GPeq(i)=sum(GP(find(S2==i))); end
figure,bar(0:255,GPeq,'b') title('¾ùºâ»¯ºóµÄÖ±·½Í¼')
xlabel('»Ò¶ÈÖµ')
ylabel('³öÏÖ¸ÅÂÊ')
figure,plot(0:255,S2,'r') legend('»Ò¶È±ä»¯ÇúÏß')
xlabel('Ô-ͼÏñ»Ò¶È¼¶')
ylabel('¾ùºâ»¯ºó»Ò¶È¼¶')
图像均衡化
PA=I;
for i=0:255
PA(find(I==i))=S2(i+1); end
figure,imshow(PA) title('¾ùºâ»¯ºóͼÏñ')
imwrite(PA,'C:\Users\SXN\Desktop\1.jpg');
淋浴平均
clear all;
I=imread('C:\Users\SXN\Desktop\1.jpg'); figure,imshow(I);
figure,imhist(I,64);
title('1µÄÖ±·½Í¼')
J=histeq(I);
figure,imshow(J);
title('Ö±·½Í¼¾ùºâ·¨ÔöǿͼÏñµÄ¶Ô±È¶È')
figure,imhist(J,64);
title('1¾ùºâ»¯ºóµÄÖ±·½Í¼')
Z=imnoise(I,'salt & pepper');
figure,imshow(Z);
title('1¼Ó½·ÑÎÔëÉùµÄͼÏñ')
Q=medfilt2(Z);
figure,imshow(Q);
title('ÀûÓÃÖÐÖµÂ˲¨È¥³ýÔëÉù')
h=(1/9)*[1 1 1;1 1 1;1 1 1];
W=imfilter(Z,h);
figure,imshow(W);
title('3§·3ÁÚÓòƽ¾ù·¨³ýÈ¥ÔëÉù')。