1、数字图像处理题库1. 选择一副图像eight.tif,设置输入/输出变换的灰度级范围,a=0.3,b=5,c=3,d=6。I=imread(eight.tif);I=im2double(I);I1=0.3.*I+5/255;I2=3.*I+6/255;subplot(1,3,1);imshow(I);title(原始图像);subplot(1,3,2);imshow(I1);title(a=0.3,b=5);subplot(1,3,3);imshow(I2);title(a=3,b=6);2. 设置非线性扩展函数的参数c=2,r=1.5,对图像eight.tif进行变换。I=imread(ei
2、ght.tif);c=2;r=1.5;S=imadjust(I,r)*c;subplot(1,2,1);imshow(I);title(原始图像);subplot(1,2,2);imshow(S);title(非线性扩展的图像);3. 采用灰度倒置变换函数s=255-r进行图像eight.tif变换I=imread(eight.tif);I=im2double(I);a=-1;b=255;S=a.*I+b/255;subplot(1,2,1);imshow(I);title(原始图像);subplot(1,2,2);imshow(S);title(变换后的图像);4. 对图像eight.tif
3、进行旋转45度和180度I=imread(eight.tif);J=imrotate(I,60,bilinear);K=imrotate(I,180,bilinear);subplot(1,3,1);imshow(I);title(原始图像);subplot(1,3,2);imshow(J);title(旋转60图像);subplot(1,3,3);imshow(K);title(旋转180图像);5. 选取一副图像eight.tif,进行离散傅里叶变换,将其中心移到零点,得到其离散傅里叶变换。参考例4.10I=imread(eight.tif);I1=fftshift(fft2(I);sub
4、plot(1,2,1);imshow(I);title(原始图像);subplot(1,2,2);imshow(log(abs(I1),);title(变换后的图像);6. 选取一副图像,进行离散傅里叶变换,再对其进行一定角度的旋转,进行离散傅里叶变换. 参考例4.6I=zeros(255,255);I(100:150,50:200)=1;I1=fftshift(abs(fft2(I);I2=imrotate(I,60,bilinear,crop);I3=fftshift(abs(fft2(I2);subplot(1,4,1);imshow(I);title(原始图像);subplot(1,4
5、,2);imshow(I1,5 50);title(傅立叶变换后的图像);subplot(1,4,3);imshow(I2);title(旋转90度后图像);subplot(1,4,4);imshow(I3,5 50);title(傅立叶变换后的原始图像);7. 选取一副图像eight.tif,进行离散余弦变换,并对其进行离散余弦反变换。参考例4.13I=imread(eight.tif);I1=dct2(I);I2=idct2(I1)/255;subplot(1,3,1);imshow(I);title(原始图像);subplot(1,3,2);imshow(I1);title(余弦变换图像
6、);subplot(1,3,3);imshow(I2);title(反余弦变换图像);8. 选取一副图像eight.tif,采用butterworth高通滤波器对图像进行高通滤波。参考例5.7I=imread(eight.tif);I1=fftshift(fft2(I);M,N=size(I1);n=2;d0=30;n1=floor(M/2);n2=floor(N/2);for x=1:M for y=1:N d=sqrt(x-n1)2+(y-n2)2); H=1/(1+(d0/d)(2*n); I2(x,y)=H*I1(x,y); endendI2=ifftshift(I2);I3=real
7、(ifft2(I2);subplot(1,2,1);imshow(I);title(原始图像);subplot(1,2,2);imshow(I3);title(Butterworth高通滤波处理后的图像);9. 选择一副图像eight.tif,对灰度图像进行直方图均衡化处理。I=imread(eight.tif);K=16;H=histeq(I,K);figure,subplot(2,2,1);imshow(I,);title(原始图像);subplot(2,2,2);imshow(H,),hold onsubplot(2,2,3),hist(double(I),16);subplot(2,2
8、,4),hist(double(H),16);10. 选择一副图像eight.tif,对灰度图像采用均值滤波。img=imread(eight.tif);subplot(1,3,1);imshow(img);title(原图);img_noise=double(imnoise(img,salt & pepper,0.08);subplot(1,3,2);imshow(img_noise,);title(加噪点图);img_deal=imfilter(img_noise,fspecial(average,5);subplot(1,3,3);imshow(img_deal,);title(平滑图)
9、;11. 选择一副图像coins.png,对灰度图像,采用prewitt边缘算子和sobel算子对图像进行增强处理。img=imread(coins.png);img1=edge(img,prewitt);img2=edge(img,sobel);subplot(1,3,1);imshow(img);title(原始图像);subplot(1,3,2);imshow(img1);title(prewitt);subplot(1,3,3);imshow(img2);title(sobel);12. 仿照matlab识别圆形物体例程,对coins.png图像进行处理。I=imread(coins.
10、png);threshold = graythresh(I);bw = im2bw(I,threshold);imshow(I);% remove all object containing fewer than 30 pixelsbw = bwareaopen(bw,30);% fill a gap in the pens capse = strel(disk,2);bw = imclose(bw,se);% fill any holes, so that regionprops can be used to estimate% the area enclosed by each of th
11、e boundariesbw = imfill(bw,holes);B,L = bwboundaries(bw,noholes);% Display the label matrix and draw each boundaryhold onfor k = 1:length(B) boundary = Bk; plot(boundary(:,2), boundary(:,1), w, LineWidth, 2)endimshow(I);stats = regionprops(L,Area,Centroid);threshold = 0.94;% loop over the boundaries
12、for k = 1:length(B) % obtain (X,Y) boundary coordinates corresponding to label k boundary = Bk; % 求周长 delta_sq = diff(boundary).2; perimeter = sum(sqrt(sum(delta_sq,2); %求面积 area = stats(k).Area; %求半径 metric = 2*area/perimeter; metric_string = sprintf(r=%2.2f,metric); text(boundary(1,2)-35,boundary(
13、1,1)+13,metric_string,Color,y,. FontSize,14,FontWeight,bold);endtitle(求各个硬币的半径);13. 对灰度图像进行直线检测,参考例8.2I=imread(img1.bmp);I=rgb2gray(I);bw=edge(I,log);H,T,R=hough(bw);P=houghpeaks(H,5,threshold,ceil(0.3*max(H(:);x=T(P(:,2);y=R(P(:,1);lines=houghlines(bw,T,R,P,FillGap,5,MinLength,10);imshow(bw);hold o
14、n;max_len=0;for k=1:length(lines) xy=lines(k).point1;lines(k).point2; plot(xy(:,1),xy(:,2),LineWidth,2,Color,g);end14. 对图像eight.tif进行OSTU算法阈值分割,参考例8.4i=imread(eight.tif);width,height=size(i);thresh=graythresh(i);bw=im2bw(i,thresh);imshow(bw);15. 对图像img3.bmp进行开运算和闭运算以及填充,参考例8.11i=imread(img3.bmp);i=r
15、gb2gray(i);bw=im2bw(i);se = strel(disk,6);bw=imopen(bw,se);bw=bw;imshow(bw);16. 识别图像中字的个数。参考matlab例程Correcting Nonuniform Illuminationi=imread(img4.bmp);i=rgb2gray(i);thresh=graythresh(i);bw=im2bw(i,thresh);se = strel(disk,2);bw=bw;bw=imdilate(bw,se);labeled,numObjects = bwlabel(bw,4);t=sprintf(字的个数
16、是:%d,numObjects);imshow(bw);title(t);17. 两幅图像进行逻辑与、或,非运算A=zeros(128); A(40:67,60:100)=1;figure(1); imshow(A);B=zeros(128); B(50:80,40:70)=1;figure(2); imshow(B);C=and(A,B); figure(3); imshow(C);D=or(A,B); figure(4); imshow(D);E=not(A); figure(5); imshow(E);18. 对一副图像首先加入高斯噪声,然后通过减法运算提取噪声。I=imread(eig
17、ht.tif); J=imnoise(I,gaussian,0,0.02);K=imsubtract(I,J); %实现两幅图片相减K1=255-K; %将图片求反显示figure;imshow(I); title(原始图像);figure;imshow(J); title(有噪声的图);figure;imshow(K1); title(提取的噪声);19. 已知一副图像coins.png,对图像进行水平镜像I=imread(coins.png);M,N=size(I); g=zeros(M,N);for i=1:M for j=1:N g(i,j)=I(i,N-j+1); endendsub
18、plot(121); imshow(I); title(原始图像);subplot(122); imshow(uint8(g); title(水平镜像);20. 已知一副图像coins.png,对图像进行垂直镜像I=imread(coins.png);M,N=size(I); g=zeros(M,N);for i=1:M for j=1:N g(i,j)=I(M-i+1,j); endendsubplot(121); imshow(I); title(原始图像);subplot(122); imshow(uint8(g); title(垂直镜像);21. 已知一副图像coins.png,对图像
19、缩小一倍I=imread(coins.png);J=imresize(I,0.5);figure,imshow(I);title(原图像);figure,imshow(J);title(缩小一倍的图像);22. 已知一副图像coins.png,采用最近邻法对图像放大一倍I=imread(coins.png);J=imresize(I,2,nearest);figure,imshow(I);title(原图像);figure,imshow(J);title(放大一倍的图像);23. 已知一副图像coins.png,对图像进行反转。Img1=imread(coins.png);figure,ims
20、how(Img1);title(original image);Img2=im.plement(Img1);figure,imshow(Img2);title(negative image);24. 对图像coins.png进行直方图均衡化并显示原图像和均衡化后的图像以及直方图I=imread(coins.png);H=histeq(I);figure,subplot(2,2,1),imshow(I,)subplot(2,2,2),imshow(H,),hold onsubplot(2,2,3),hist(double(I),subplot(2,2,4),hist(double(H)25. 对
21、一副图像coins.png加入椒盐噪声,然后采用局部3X3的模板进行平滑处理。img=imread(coins.png);figure; imshow(img);img_noise=double(imnoise(img,salt & pepper,0.06);figure; imshow(img_noise,);img_smoothed=imfilter(img_noise,fspecial(average,3);figure; imshow(img_smoothed,);26. 对一副图像coins.png加入高斯噪声,然后采用局部5X5的模板进行平滑处理。img=imread(coins.
22、png);figure; imshow(img);img_noise=double(imnoise(img,gaussian,0.02);figure; imshow(img_noise,);img_smoothed=imfilter(img_noise,fspecial(average,5);figure; imshow(img_smoothed,);27. 已知一副图像coins.png,进行sobel边缘检测,显示原图和边缘检测图。I=imread(coins.png);bw=edge(I,sobel);subplot(121),imshow(I);title(原图像);subplot(
23、122),imshow(bw);title(Sobel算子);28. 已知一副图像coins.png,进行prewitt边缘检测,显示原图和边缘检测图。I=imread(coins.png);bw=edge(I,prewitt);subplot(121),imshow(I);title(原图像);subplot(122),imshow(bw);title(prewitt算子);29. 已知一副图像coins.png,进行robert边缘检测,显示原图和边缘检测图。I=imread(coins.png);bw=edge(I,roberts);subplot(121),imshow(I);titl
24、e(原图像);subplot(122),imshow(bw);title(robert算子);30. 已知一副图像coins.png,进行高斯-拉普拉斯边缘检测,显示原图和边缘检测图。I=imread(coins.png);bw=edge(I,log);subplot(121),imshow(I);title(原图像);subplot(122),imshow(bw);title(高斯-拉普拉斯算子);31. 已知一副图像coins.png,显示其直方图和原图像。I=imread(coins.png);subplot(121),imshow(I);title(原图像);subplot(122),
25、imhist(I);title(直方图);32. 已知一个图像coins.png,对图像进行腐蚀运算,输出原图和结果图.I=imread(coins.png);se1=strel(disk,5);bw=imerode(I,se1);subplot(121),imshow(I);title(原图像);subplot(122),imshow(bw);title(腐蚀后的图像);33. 已知一个图像coins.png,对图像进行膨胀运算,输出原图和结果图I=imread(coins.png);se2=strel(line,5,90);bw=imdilate(I,se2);subplot(121),i
26、mshow(I);title(原图像);subplot(122),imshow(bw);title(膨胀后的图像);34. 已知一个图像coins.png,对图像进行开运算,输出原图和结果图I=imread(coins.png);se = strel(disk,5);bw=imopen(I,se);subplot(121),imshow(I);title(原图像);subplot(122),imshow(bw);title(开运算后的图像);35. 已知一个图像coins.png,对图像进行闭运算,输出原图和结果图I=imread(coins.png);se = strel(disk,5);b
27、w=imclose(I,se);subplot(121),imshow(I);title(原图像);subplot(122),imshow(bw);title(闭运算后的图像);36. 已知一个图像coins.png,求其右上角方块的灰度均值,以及该区域的灰度最大值和最小值I=imread( coins.png ); %读取图像I=double(I); %转换成double型m,n=size(I); %获取图像的高度m和宽度nmw=round(m/2); %得到高度的一半mwmh=round(n/2); %得到宽度的一半mhsumg=0.0; %变量初始化for i=1:mw for j=mh
28、:n %二重循环计算右上角灰度值之和 sumg=sumg+I(i,j); endendavg=sumg/(mw*mh) %计算图像右上角灰度值的均值maxg=max(max(I(1:mw,mh:n) %计算得到图像右上角灰度值的最大值ming=min(min(I(1:mw,mh:n) %计算得到图像右上角灰度值的最小值37. 已知一个图像coins.png,求其左下角方块的灰度均值,以及该区域的灰度最大值和最小值I=imread(coins.png); %读取图像I=double(I); %转换成double型m,n=size(I); %获取图像的高度m和宽度nmw=round(m/2); %
29、得到高度的一半mwmh=round(n/2); %得到宽度的一半mhsumg=0.0; %变量初始化for i=mw:m for j=1:mh %二重循环计算左下角灰度值之和 sumg=sumg+I(i,j); endendavg=sumg/(mw*mh) %计算图像左下角灰度值的均值maxg=max(max(I(mw:m,1:mh) %计算得到图像左下角灰度值的最大值ming=min(min(I(mw:m,1:mh) %计算得到图像左下角灰度值的最小值38. 已知一个图像coins.png,求其右下角方块的灰度均值,以及该区域的灰度最大值和最小值I=imread(coins.png); %读取图像I=double(I); %转换成double型m,n=size(I); %获取图像的高度m和宽度nmw=round(m/2); %得到高度的一半mwmh=round(n/2); %得到宽度的一半mhsumg=0.0; %变量初始化for i=mw:m for j=mh:n %二重循环计算右下角灰度值之和 sumg=sumg+I(i,j); endendavg=sumg/(mw*mh) %计算图像右下角灰度值的均值maxg=max(max(I(mw:m,mh:n)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1