
中南民族大学数字图像处理程序及图像.doc
36页仅供参考 定有错误 木有绝对正确 实验 11—1close all;clear;f=zeros(40,40);%f(10:30,10:30)=1;subplot(1,3,1);%imshow(f);%F=fft2(f)subplot(1,3,2);%imshow(F);%D=log(1+abs(F));%subplot(1,3,3);imshow(D);1——2clcload imdemos saturn2subplot(121)imshow(saturn2)i=fftshift(fft2(saturn2));subplot(122)imshow(log(abs(i)),[]),colormap(jet(64)),colorbar;1——3w=imread('text.png');a=w(33:45,88:98);figure;imshow(w);figure;imshow(a);C=real(ifft2(fft2(w).*fft2(rot90(a,2),256,256)));figure;imshow(C,[]);max(C(:));thresh=60;figure;imshow(C>thresh);1——4RGB=imread('autumn.tif');figure(1),imshow(RGB);I=rgb2gray(RGB);figure(2),imshow(I);J=dct2(I);figure(3),imshow(log(abs(J)),[]),colormap(jet(64)),colorbar;J(abs(J)0)J(i,j) = 0.5*I(i,j);elseif (I(i,j) 50)result2(i,j)=0;elseresult2(i,j)=g(i,j);endendendresult1=ifftshift(result1);result2=ifftshift(result2);X2=ifft2(result1);X3=uint8(real(X2));subplot(2,2,3);imshow(X3);title('Butterworth 滤波图像'); X4=ifft2(result2);X5=uint8(real(X4));subplot(2,2,4);imshow(X5);title('理想低通滤波器');test1I=imread('m83.tif');J=imnoise(I,'salt & pepper',0.02);subplot(2,2,1);imshow(J);title('噪声图像 ');K1=medfilt2(J,[3 3]);K2=medfilt2(J,[5 5]);K3=medfilt2(J,[7 7]);subplot(2,2,2);imshow(K1);title('3*3 模板中值滤波');subplot(2,2,3);imshow(K2);title('5*5 模板中值滤波');subplot(2,2,4);imshow(K3);title('7*7 模板中值滤波');f=imread('board.tif');w4=fspecial('sobel');w8=[1 2 1;0 0 0;-1 -2 -1];f=im2double(f);g4=imfilter(f,w4,'replicate');g8=imfilter(f,w8,'replicate');G4=f-g4;G8=f-g8;imshow(f);figure,imshow(G4);figure,imshow(G8);test2f=imread('board.tif');w4=fspecial('sobel');w8=[1 2 1;0 0 0;-1 -2 -1];f=im2double(f);g4=imfilter(f,w4,'replicate');g8=imfilter(f,w8,'replicate');G4=f-g4;G8=f-g8;imshow(f);figure,imshow(G4);figure,imshow(G8);4-1clear;d=15h=zeros(2*d+1,2*d+1);h(d+1,1:2*d+1)=1/(2*d);f=imread('cameraman.tif');[m,n]=size(f);fe=zeros(m+2*d,n+2*d);fe(1:m,1:n)=f;he=zeros(m+2*d,n+2*d);he(1:2*d+1,1:2*d+1)=h;F=fft2(fe);H=fft2(he);ns=5*rand(m+2*d,n+2*d);g=ifft2(F.*H)+ns;G=fft2(g);K=0;F_est=((H.^2)./(H.^2+K)).*G./H;f_est=real(ifft2(F_est));imshow(f);figure;imshow(g(d+1:m+d,d+1:n+d),[min(g(:)) max(g(:))]);figure;imshow(f_est(1:m,1:n),[min(f_est(:)) max(f_est(:))]);4-2F=checkerboard(8);figure(1);imshow(F,[]);PSF=fspecial('motion',7,45);MF=imfilter(F,PSF,'circular');noise=imnoise(zeros(size(F)),'gaussian',0,0.01);MFN=MF+noise;figure(2);imshow(MFN,[]);NSR=sum(noise(:).^2)/sum(MFN(:).^2);figure(3);imshow(deconvwnr(MFN,PSF),[]);figure(4);imshow(deconvwnr(MFN,PSF,NSR),[]);Sn=abs(fft2(noise)).^2;Sf=abs(fft2(F)).^2;NCORR=fftshift(real(ifft2(Sn)));ICORR=fftshift(real(ifft2(Sf)));figure(5);imshow(deconvwnr(MFN,PSF,NCORR,ICORR),[]);test1F=checkerboard(8);figure(1);imshow(F,[]);PSF=fspecial('motion',7,45);MF=imfilter(F,PSF,'circular');noise=imnoise(zeros(size(F)),'gaussian',0,0.01);MFN=MF+noise;figure(2);imshow(MFN,[]);NSR=sum(noise(:).^2)/sum(MFN(:).^2);figure(3);imshow(deconvwnr(MFN,PSF),[]);figure(4);imshow(deconvwnr(MFN,PSF,NSR),[]);Sn=abs(fft2(noise)).^2;Sf=abs(fft2(F)).^2;NCORR=fftshift(real(ifft2(Sn)));ICORR=fftshift(real(ifft2(Sf)));figure(5);imshow(deconvwnr(MFN,PSF,NCORR,ICORR),[]);5-1I = imread('circuit.tif');BW1 = edge(I,'prewitt');BW2 = edge(I,'canny');BW3 = edge(I,'sobel');BW4 = edge(I,'roberts');BW5 = edge(I,'log');BW6 = edge(I,'zerocross');figuresubplot(131)imshow(BW1);title('prewitt')subplot(132)imshow(BW2);title('canny')subplot(133)imshow(BW3);title('sobel')figuresubplot(131)imshow(BW4);title('roberts')subplot(132)imshow(BW5);title('prewitt')subplot(133)imshow(BW6);title('zerocross')5-2clcclear allI=imread('cameraman.bmp');subplot(1,2,1),imshow(I);title('原始图像 ')axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系level=graythresh(I); %确定灰度阈值BW=im2bw(I,level);subplot(1,2,2),imshow(BW);title('Otsu 法阈值分割图像')axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I=imread('xian.bmp'); %载入图像I1=rgb2gray(I);subplot(1,2,1);imshow(I1);title('灰度图像 ') axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系se=strel('disk',1); %生成圆形结构元素I2=imdilate(I1,se); %用生成的结构元素对图像进行膨胀subplot(1,2,2);imshow(I2);title(' 膨胀后图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系test1I1=imread('cameraman.bmp');%=rgb2gray(I);figure;subplot(2,2,1);imshow(I1);title(' 灰度图像')axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系[m,n]=size(I1); %测量图像尺寸参数GP=zeros(1,256); %预创建存放灰度出现概率的向量for k=0:255GP(k+1)=length(find(I1==k))/(m*n); %计算每级灰度出现的概率,将其存入 GP 中相应位置endsubplot(2,2,2),bar(0:255,GP,'g') %绘制直方图title('灰度直方图')xlabel('灰度值')ylabel(' 出现概率')I2=im2bw(I,150/255); subplot(2,2,3),imshow(I2);title('阈值 150 的分割图像')axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I3=im2bw(I,200/255); %subplot(。
