数字图像处理题库Word文件下载.docx
《数字图像处理题库Word文件下载.docx》由会员分享,可在线阅读,更多相关《数字图像处理题库Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
imshow(K);
旋转180图像'
5.选取一副图像eight.tif,进行离散傅里叶变换,将其中心移到零点,得到其离散傅里叶变换。
参考例4.10
I1=fftshift(fft2(I));
imshow(log(abs(I1)),[]);
6.选取一副图像,进行离散傅里叶变换,再对其进行一定角度的旋转,进行离散傅里叶变换.参考例4.6
I=zeros(255,255);
I(100:
150,50:
200)=1;
I1=fftshift(abs(fft2(I)));
I2=imrotate(I,60,'
'
crop'
I3=fftshift(abs(fft2(I2)));
subplot(1,4,1);
subplot(1,4,2);
imshow(I1,[550]);
傅立叶变换后的图像'
subplot(1,4,3);
旋转90度后图像'
subplot(1,4,4);
imshow(I3,[550]);
傅立叶变换后的原始图像'
7.选取一副图像eight.tif,进行离散余弦变换,并对其进行离散余弦反变换。
参考例4.13
I1=dct2(I);
I2=idct2(I1)/255;
余弦变换图像'
反余弦变换图像'
8.选取一副图像eight.tif,采用butterworth高通滤波器对图像进行高通滤波。
参考例5.7
[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));
imshow(I3);
Butterworth高通滤波处理后的图像'
9.选择一副图像eight.tif,对灰度图像进行直方图均衡化处理。
K=16;
H=histeq(I,K);
figure,
subplot(2,2,1);
imshow(I,[]);
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('
imshow(img);
原图'
img_noise=double(imnoise(img,'
salt&
pepper'
0.08));
imshow(img_noise,[]);
加噪点图'
img_deal=imfilter(img_noise,fspecial('
average'
5));
imshow(img_deal,[]);
平滑图'
11.选择一副图像coins.png,对灰度图像,采用prewitt边缘算子和sobel算子对图像进行增强处理。
coins.png'
img1=edge(img,'
prewitt'
img2=edge(img,'
sobel'
imshow(img1);
imshow(img2);
12.仿照matlab识别圆形物体例程,对coins.png图像进行处理。
threshold=graythresh(I);
bw=im2bw(I,threshold);
%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)
stats=regionprops(L,'
Area'
Centroid'
threshold=0.94;
%loopovertheboundaries
%obtain(X,Y)boundarycoordinatescorrespondingtolabel'
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'
求各个硬币的半径'
13.对灰度图像进行直线检测,参考例8.2
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),'
2,'
g'
14.对图像eight.tif进行OSTU算法阈值分割,参考例8.4
i=imread('
[width,height]=size(i);
thresh=graythresh(i);
bw=im2bw(i,thresh);
15.对图像img3.bmp进行开运算和闭运算以及填充,参考例8.11
img3.bmp'
i=rgb2gray(i);
bw=im2bw(i);
6);
bw=imopen(bw,se);
bw=~bw;
16.识别图像中字的个数。
参考matlab例程CorrectingNonuniformIllumination
img4.bmp'
bw=imdilate(bw,se);
[labeled,numObjects]=bwlabel(bw,4);
t=sprintf('
字的个数是:
%d'
numObjects);
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.对一副图像首先加入高斯噪声,然后通过减法运算提取噪声。
J=imnoise(I,'
gaussian'
0,0.02);
K=imsubtract(I,J);
%实现两幅图片相减
K1=255-K;
%将图片求反显示
figure;
title('
有噪声的图'
imshow(K1);
提取的噪声'
19.已知一副图像coins.png,对图像进行水平镜像
[M,N]=size(I);
g=zeros(M,N);
fori=1:
forj=1:
g(i,j)=I(i,N-j+1);
subplot(121);
imshow(I);
subplot(122);
imshow(uint8(g));
水平镜像'
20.已知一副图像coins.png,对图像进行垂直镜像
g(i,j)=I(M-i+1,j);
垂直镜像'
21.已知一副图像coins.png,对图像缩小一倍
J=imresize(I,0.5);
figure,imshow(I);
原图像'
figure,imshow(J);
缩小一倍的图像'
22.已知一副图像coins.png,采用最近邻法对图像放大一倍
J=imresize(I,2,'
nearest'
放大一倍的图像'
23.已知一副图像coins.png,对图像进行反转。
Img1=imread('
figure,imshow(Img1);
originalimage'
Img2=im.plement(Img1);
figure,imshow(Img2);
negativeimage'
24.对图像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的模板进行平滑处理。
imshow(img);
0.06));
imshow(img_noise,[]);
img_smoothed=imfilter(img_noise,fspecial('
3));
imshow(img_smoothed,[]);
26.对一副图像coins.png加入高斯噪声,然后采用局部5X5的模板进行平滑处理。
0.02));
27.已知一副图像coins.png,进行sobel边缘检测,显示原图和边缘检测图。
subplot(121),imshow(I);
subplot(122),imshow(bw);
Sobel算子'
28.已知一副图像coins.png,进行prewitt边缘检测,显示原图和边缘检测图。
prewitt算子'
29.已知一副图像coins.png,进行robert边缘检测,显示原图和边缘检测图。
roberts'
robert算子'
30.已知一副图像coins.png,进行高斯-拉普拉斯边缘检测,显示原图和边缘检测图。
高斯-拉普拉斯算子'
31.已知一副图像coins.png,显示其直方图和原图像。
subplot(122),imhist(I);
直方图'
32.已知一个图像coins.png,对图像进行腐蚀运算,输出原图和结果图.
se1=strel('
5);
bw=imerode(I,se1);
腐蚀后的图像'
33.已知一个图像coins.png,对图像进行膨胀运算,输出原图和结果图
se2=strel('
line'
5,90);
bw=imdilate(I,se2);
膨胀后的图像'
34.已知一个图像coins.png,对图像进行开运算,输出原图和结果图
bw=imopen(I,se);
开运算后的图像'
35.已知一个图像coins.png,对图像进行闭运算,输出原图和结果图
bw=imclose(I,se);
闭运算后的图像'
36.已知一个图像coins.png,求其右上角方块的灰度均值,以及该区域的灰度最大值和最小值
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;
%变量初始化
mw
forj=mh:
n%二重循环计算右上角灰度值之和
sumg=sumg+I(i,j);
avg=sumg/(mw*mh)%计算图像右上角灰度值的均值
maxg=max(max(I(1:
mw,mh:
n)))%计算得到图像右上角灰度值的最大值
ming=min(min(I(1:
n)))%计算得到图像右上角灰度值的最小值
37.已知一个图像coins.png,求其左下角方块的灰度均值,以及该区域的灰度最大值和最小值
fori=mw:
m
mh%二重循环计算左下角灰度值之和
avg=sumg/(mw*mh)%计算图像左下角灰度值的均值
maxg=max(max(I(mw:
m,1:
mh)))%计算得到图像左下角灰度值的最大值
ming=min(min(I(mw:
mh)))%计算得到图像左下角灰度值的最小值
38.已知一个图像coins.png,求其右下角方块的灰度均值,以及该区域的灰度最大值和最小值
n%二重循环计算右下角灰度值之和
avg=sumg/(mw*mh)%计算图像右下角灰度值的均值
m,mh:
n))