数字图像处理题库.docx
- 文档编号:4461027
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:14
- 大小:18.31KB
数字图像处理题库.docx
《数字图像处理题库.docx》由会员分享,可在线阅读,更多相关《数字图像处理题库.docx(14页珍藏版)》请在冰豆网上搜索。
数字图像处理题库
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('eight.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进行旋转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.10
I=imread('eight.tif');
I1=fftshift(fft2(I));
subplot(1,2,1);imshow(I);title('原始图像');
subplot(1,2,2);imshow(log(abs(I1)),[]);title('变换后的图像');
6.选取一副图像,进行离散傅里叶变换,再对其进行一定角度的旋转,进行离散傅里叶变
换.参考例4.6
I=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,2);imshow(I1,[550]);title('傅立叶变换后的图像');
subplot(1,4,3);imshow(I2);title('旋转90度后图像');
subplot(1,4,4);imshow(I3,[550]);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('余弦变换图像');
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);
forx=1:
M
fory=1:
N
d=sqrt((x-n1)^2+(y-n2)^2);
H=1/(1+(d0/d)^(2*n));
I2(x,y)=H*I1(x,y);
end
end
I2=ifftshift(I2);
I3=real(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,[]),holdon
subplot(2,2,3),hist(double(I),16);
subplot(2,2,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('平滑图');
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.png');
threshold=graythresh(I);
bw=im2bw(I,threshold);
imshow(I);
%removeallobjectcontainingfewerthan30pixels
bw=bwareaopen(bw,30);
%fillagapinthepen'scap
se=strel('disk',2);
bw=imclose(bw,se);
%fillanyholes,sothatregionpropscanbeusedtoestimate
%theareaenclosedbyeachoftheboundaries
bw=imfill(bw,'holes');
[B,L]=bwboundaries(bw,'noholes');
%Displaythelabelmatrixanddraweachboundary
holdon
fork=1:
length(B)
boundary=B{k};
plot(boundary(:
2),boundary(:
1),'w','LineWidth',2)
end
imshow(I);
stats=regionprops(L,'Area','Centroid');
threshold=0.94;
%loopovertheboundaries
fork=1:
length(B)
%obtain(X,Y)boundarycoordinatescorrespondingtolabel'k'
boundary=B{k};
%求周长
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(1,1)+13,metric_string,'Color','y',...
'FontSize',14,'FontWeight','bold');
end
title('求各个硬币的半径');
13.对灰度图像进行直线检测,参考例8.2
I=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);
holdon;
max_len=0;
fork=1:
length(lines)
xy=[lines(k).point1;lines(k).point2];
plot(xy(:
1),xy(:
2),'LineWidth',2,'Color','g');
end
14.对图像eight.tif进行OSTU算法阈值分割,参考例8.4
i=imread('eight.tif');
[width,height]=size(i);
thresh=graythresh(i);
bw=im2bw(i,thresh);
imshow(bw);
15.对图像img3.bmp进行开运算和闭运算以及填充,参考例8.11
i=imread('img3.bmp');
i=rgb2gray(i);
bw=im2bw(i);
se=strel('disk',6);
bw=imopen(bw,se);
bw=~bw;
imshow(bw);
16.识别图像中字的个数。
参考matlab例程CorrectingNonuniformIlluminationi=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('字的个数是:
%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('eight.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);
fori=1:
M
forj=1:
N
g(i,j)=I(i,N-j+1);
end
end
subplot(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);
fori=1:
M
forj=1:
N
g(i,j)=I(M-i+1,j);
end
end
subplot(121);imshow(I);title('原始图像');
subplot(122);imshow(uint8(g));title('垂直镜像');
21.已知一副图像coins.png,对图像缩小一倍
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,imshow(Img1);title('originalimage');
Img2=imcomplement(Img1);
figure,imshow(Img2);title('negativeimage');
24.对图像coins.png进行直方图均衡化并显示原图像和均衡化后的图像以及直方图I=imread('coins.png');
H=histeq(I);
figure,subplot(2,2,1),imshow(I,[])
subplot(2,2,2),imshow(H,[]),holdon
subplot(2,2,3),hist(double(I)),subplot(2,2,4),hist(double(H))
25.对一副图像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.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(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);title('原图像');
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),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),imshow(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);
bw=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和宽度n
mw=round(m/2);%得到高度的一半mw
mh=round(n/2);%得到宽度的一半mh
sumg=0.0;%变量初始化
fori=1:
mw
forj=mh:
n%二重循环计算右上角灰度值之和
sumg=sumg+I(i,j);
end
end
avg=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和宽度n
mw=round(m/2);%得到高度的一半mw
mh=round(n/2);%得到宽度的一半mh
sumg=0.0;%变量初始化
fori=mw:
m
forj=1:
mh%二重循环计算左下角灰度值之和
sumg=sumg+I(i,j);
end
end
avg=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);%转换
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 处理 题库