当前位置:文档之家› 图像处理上机作业题

图像处理上机作业题

2、用Matlab语言编写直方图规定化程序clc;I=imread('tire.tif');J=histeq(I,32);[counts,x]=imhist(J);Q=imread('eight.tif');figure;imshow(Q);figure;imhist(Q);M=histeq(Q,counts);figure;imshow(M);figure;imhist(M);3、编写程序实现半邻域选择平均法进行空间域图像平滑的程序。

clear;clc;I=imread('pout.tif');J=imnoise(I,'salt & pepper',0.02);K=filter2(fspecial('average',3),J)/255;subplot(131),imshow(I);subplot(132),imshow(J);subplot(133),imshow(K);4、针对某种平滑方法,比较对高斯噪声,椒盐噪声和乘法性噪声的去噪效果%%% 使用二维中值滤波对噪声进行处理clc;%%%原始图像以及加上噪声后的图像[I,map]=imread('pout.tif');imshow(I,map);noisy1=imnoise(I , 'gaussian' , 0.05);%加入0.05的高斯白噪声noisy2=imnoise(I , 'salt & pepper' , 0.05);%加入0.05的椒盐噪声noisy3=imnoise(I , 'speckle' , 0.05);%加入0.05的乘法性噪声figure;imshow(noisy1,map);figure;imshow(noisy2,map);figure;imshow(noisy3,map);%%%二维窗口越大图像细节丢失越多% 3*3窗口的二维中值滤波hood=3;filtered1=medfilt2(noisy1,[hood hood]);filtered2=medfilt2(noisy2,[hood hood]);filtered3=medfilt2(noisy3,[hood hood]);figure;imshow(filtered1);figure;imshow(filtered2);figure;imshow(filtered3);原图像加噪声后去噪声后5、编写掩模匹配法实现锐化的程序,对同一图像比较Robison,Prewitt及Kirsch模板的锐化效果%%% RobisonÄ£°åÑÚģƥÅä·¨clc;[I,map]=imread('pout.tif');imshow(I,map);[M N]=size(I);%%myfilt1=[ 1 2 1;0 0 0;-1 -2 -1];filtered1=filter2(myfilt1,I);%%myfilt2=[ 2 1 0;1 0 -1;0 -1 -2];filtered2=filter2(myfilt2,I);%%myfilt3=[ 1 0 -1;2 0 -2;1 0 -1];filtered3=filter2(myfilt3,I);%%myfilt4=[ 0 -1 -2;1 0 -1;2 1 0];filtered4=filter2(myfilt4,I);%%myfilt5=[-1 -2 -1;0 0 0;1 2 1];filtered5=filter2(myfilt5,I);%%myfilt6=[-2 -1 0;-1 0 -1;0 1 2];filtered6=filter2(myfilt6,I);%%myfilt7=[-1 0 1;-2 0 2;-1 0 1];filtered7=filter2(myfilt7,I);%%myfilt8=[ 0 1 2;-1 0 1;-2 -1 0];filtered8=filter2(myfilt8,I);%%for i=1:Mfor j=1:Nx=[filtered1(i,j),filtered2(i,j),filtered3(i,j),filtered4(i,j),...filtered5(i,j),filtered6(i,j),filtered7(i,j),filtered8(i,j)];OUT(i,j)=max(x);endendfigure;imshow(OUT,map);% PrewittÈñ»¯µÄ³ÌÐòclc;%%[I,map]=imread('pout.tif');imshow(I,map);[M N]=size(I);%%myfilt1=[1 1 1;1 -2 1;-1 -1 -1];filtered1=filter2(myfilt1,I);myfilt2=[1 1 1;1 -2 -1;1 -1 -1];filtered2=filter2(myfilt2,I);myfilt3=[1 1 -1;1 -2 -2;1 1 -1];filtered3=filter2(myfilt3,I);myfilt4=[1 -1 1;1 -2 -1;1 1 1];filtered4=filter2(myfilt4,I);myfilt5=[-1 -1 -1;1 -2 1;1 1 1];filtered5=filter2(myfilt5,I);myfilt6=[-1 -1 1;-1 -2 1;1 1 1];filtered6=filter2(myfilt6,I);myfilt7=[-1 0 1;-1 -2 1;-1 1 1];filtered7=filter2(myfilt7,I);myfilt8=[1 1 1;-1 -2 1;-1 -1 1];filtered8=filter2(myfilt8,I);%%for i=1:Mfor j=1:Nx=[filtered1(i,j),filtered2(i,j),filtered3(i,j),filtered4(i,j),...filtered5(i,j),filtered6(i,j),filtered7(i,j),filtered8(i,j)];OUT(i,j)=max(x);endend%%figure;imshow(OUT,map);%%% KirschÄ£°åÑÚģƥÅä·¨clc;[I,map]=imread('pout.tif');imshow(I,map);[M N]=size(I);%%myfilt1=[5 5 5;-3 0 -3;-3 -3 -3];filtered1=filter2(myfilt1,I);myfilt2=[5 5 -3;5 0 -3;-3 -3 -3];filtered2=filter2(myfilt2,I);myfilt3=[5 -3 -3;5 0 -3;5 -3 -3];filtered3=filter2(myfilt3,I);myfilt4=[-3 -3 -3;5 0 -3;5 5 -3];filtered4=filter2(myfilt4,I);myfilt5=[-3 -3 -3;-3 0 -3;5 5 5];filtered5=filter2(myfilt5,I);myfilt6=[-3 -3 -3;-3 0 5;-3 5 5];filtered6=filter2(myfilt6,I);myfilt7=[-3 -3 5;-3 0 5;-3 -3 5];filtered7=filter2(myfilt7,I);myfilt8=[-3 5 5;-3 0 5;-3 -3 3];filtered8=filter2(myfilt8,I);%%for i=1:Mfor j=1:Nx=[filtered1(i,j),filtered2(i,j),filtered3(i,j),filtered4(i,j),...filtered5(i,j),filtered6(i,j),filtered7(i,j),filtered8(i,j)];OUT(i,j)=max(x);endend%%figure;imshow(OUT,map);6、用Matlab编写出图像高通滤波实现锐化的程序,并通过实例进行各种高通滤波器性能的比较%¸ßͨÂ˲¨clc;[I,map]=imread('pout.tif');figure;imshow(I,map);noisy=imnoise(I,'gaussian', 0.05);figure;imshow(noisy,map);[M N]=size(I);F=fft2(double(noisy));fftshift(F);Dcut=100;D0=150;D1=250;for u=1:Mfor v=1:ND(u,v)=sqrt(u^2+v^2);BUTTERH(u,v)=1/(1+(sqrt(2)-1)*(Dcut/D(u,v))^2);EXPOTH(u,v)=exp(log(1/sqrt(2))*(Dcut/D(u,v))^2);if D(u,v)<=200IDEALH(u,v)=1;elseIDEALH(u,v)=0;endif D(u,v)<=D1TRAPEH(u,v)=0;elseif D(u,v)<=D0;TRAPEH(u,v)=(D(u,v)-D1)/(D0-D1);elseTRAPEH(u,v)=1;endendendIDEALG=IDEALH.*F;IDEALfiltered=ifft2(IDEALG);BUTTERG=BUTTERH.*F;BUTTERfiltered=ifft2(BUTTERG);EXPOTG=EXPLOTH.*F;EXPOTfiltered=ifft2(EXPOTG);TRAPEG=TRAPEH.*F;TRAPEfiltered=ifft2(TRAPEG);figure;imshow(IDEALfiltered,map)figure;imshow(BUTTERfiltered,map)figure;imshow(EXPOTfiltered,map)figure;imshow(TRAPEfiltered,map)1、Matlab编程实现点模板,线模板检测图像区域应用点模板的初始灰度级分布如下图,输出点模板匹配后的灰度分布:1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 4 1 1 1 1 1 11 1 1 4 4 4 4 4 1 1 1 11 1 1 4 4 4 4 4 4 1 1 11 1 1 1 4 4 4 4 4 1 1 11 1 1 1 4 4 4 4 1 1 1 11 1 1 1 1 4 4 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1data=[1,1,1,1,1,1,1,1,1,1,1,1;1,1,1,1,1,4,1,1,1,1,1,1;1,1,1,4,4,4,4,4,1,1,1,1;1,1,1,4,4,4,4,4,4,1,1,1;1,1,1,1,4,4,4,4,4,1,1,1;1,1,1,1,4,4,4,4,1,1,1,1;1,1,1,1,1,4,4,1,1,1,1,1,;1,1,1,1,1,1,1,1,1,1,1,1];[n,m]=size(data);disp('初始灰度级分布');datadm=ones(n,m);myfit=[-1 -1 -1;-1 8 -1;-1 -1 -1];for i=1:n-2for j=1:m-2dm(i+1,j+1)=sum(sum(myfit.*data(i:i+2,j:j+2))); endenddisp('点模板匹配后的灰度分布');[n,m]=find(dm~=1);data(n,m)=dm(n,m);data(data<0)=0;data初始灰度级分布data =1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 4 1 1 1 1 1 11 1 1 4 4 4 4 4 1 1 1 11 1 1 4 4 4 4 4 4 1 1 11 1 1 1 4 4 4 4 4 1 1 11 1 1 1 4 4 4 4 1 1 1 11 1 1 1 1 4 4 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1点模板匹配后的灰度分布data =1 1 1 1 1 1 1 1 1 1 1 11 0 0 0 0 15 0 0 0 0 0 11 0 0 15 6 6 6 12 0 0 0 11 0 0 123 0 0 3 12 0 0 11 0 0 0 6 0 0 3 12 0 0 11 0 0 0 123 3 9 0 0 0 11 0 0 0 0 12 12 0 0 0 0 11 1 1 1 1 1 1 1 1 1 1 1应用线模板的初始灰度级分布如下图,输出线模板匹配后的灰度分布:1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 2 1 1 1 2 2 2 1 1 1 2 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1Grey=textread ('D:\我的文档\桌面\初始图像灰度分布.txt');[n,m]=size (Grey);k=max ([n,m])/min([n,m]);Lmould_ 00=[-1 -1 -1;2 2 2;-1 -1 -1];Lmould_ 45=[-1 -1 2;-1 2 -1;2 -1 -1];Lmould_ 90=[-1 2 -1;-1 2 -1;-1 2 -1];Lmould_ 135=[2 -1 -1;-1 2 -1;-1 -1 2];Grey_Leaf=ones (n,n,k);Grey_temp=ones (n,n);account=1;for t=1:kGrey_Leaf (:,:,t)=Grey (:,account:account+n-1);account=account+n;endfor t=1:kfor i=1:n-2for j=1:n-2a1=sum (sum (Lmould_ 00.*Grey_Leaf (i:i+2,j:j+2,t)));a2=sum (sum (Lmould_ 45.*Grey_Leaf (i:i+2,j:j+2,t)));a3=sum (sum (Lmould_ 90.*Grey_Leaf (i:i+2,j:j+2,t)));a4=sum (sum (Lmould_ 135.*Grey_Leaf (i:i+2,j:j+2,t)));Grey_temp (i+1,j+1)=max ([a1,a2,a3,a4]);endend[n1,m1]=find (Grey_temp~=1);Grey_Leaf (n1,m1,t)=Grey_temp (n1,m1);Grey_temp (n1,m1)=1;enddisp ('初始灰度级分布');Grey_Leafdisp ('线模板边缘检测结果');Grey_Leaf2、用Mathematical求解一次平面拟合中a,b,c三个参量。

相关主题