数字图像处理期末考试题

上传人:hs****ma 文档编号:563369951 上传时间:2023-06-30 格式:DOCX 页数:12 大小:63.70KB
返回 下载 相关 举报
数字图像处理期末考试题_第1页
第1页 / 共12页
数字图像处理期末考试题_第2页
第2页 / 共12页
数字图像处理期末考试题_第3页
第3页 / 共12页
数字图像处理期末考试题_第4页
第4页 / 共12页
数字图像处理期末考试题_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《数字图像处理期末考试题》由会员分享,可在线阅读,更多相关《数字图像处理期末考试题(12页珍藏版)》请在金锄头文库上搜索。

1、数字图像处理技术与应用练习题说明:不允许直接使用MATLAB(或者OPENCV等等软件)所带的图像图像函数,重点考察大家是否理解了各种处理算法,算法可用伪代码描述。算法应较详细。1、 设一幅大小为MN的灰度图像I中,灰度为g的像素数为h(g), 。 请写出对图像I进行直方图均衡化,得到图像J的计算方法。clc;clear;I= imread(a.jpg);I= rgb2gray(I) ; %将图像转换为灰度图像J= histeq( I) ; %对I 进行直方图均衡化subplot( 121) ,imshow(I) ,title(原始图像) ;subplot (122), imshow(J),

2、title(直方图均衡化后的图像);figure( 2) ;subplot( 121) ,imhist(I, 64), title( 原始的直方图);subplot( 122) ,imhist(J,64) ,title( 均衡化后的直方图);2、 设一幅大小为MN的灰度图像I中,现要变成(放大或缩小)为 PQ的图像J,请写出J的生成算法(可以使用近邻插值)。I=imread(f.jpg);%读入图像%图像属性% Filename: f.jpg% FileModDate: 24-Aug-2008 16:50:30% FileSize: 20372% Format: jpg% FormatVers

3、ion: % Width: 480% Height: 640% BitDepth: 8% ColorType: grayscale% FormatSignature: % NumberOfSamples: 1% CodingMethod: Huffman% CodingProcess: Sequential% Comment: rows,cols=size(I);K1 = str2double(inputdlg(请输入行缩放倍数, INPUT scale factor, 1, 0.6);%行默认变为原来的0.6倍K2 = str2double(inputdlg(请输入列缩放倍数, INPUT

4、scale factor, 1, 0.4);%列默认变为原来的0.4倍width = K1 * rows; height = K2 * cols;im2 = uint8(zeros(width,height); %定义输出图像矩阵widthScale = rows/width;heightScale = cols/height;for x = 6:width - 6 %为防止矩阵溢出而选择的参数6 for y = 6:height - 6 oldX = x * widthScale; %oldX,oldY为原坐标,x,y为新坐标 oldY = y * heightScale; if (oldX

5、/double(uint16(oldX) = 1.0) & (oldY/double(uint16(oldY) = 1.0) im2(x,y) = I(int16(oldX),int16(oldY); else a = double(round(oldX); b = double(round(oldY); %若不是整数四舍五入后把临近值赋过去 im2(x,y) = I(a,b); end endendimshow(I); %输出原图像figure;imshow(im2); %输出缩放后图像3、 设一幅大小为MN的灰度图像I中,现要将其逆时针旋转 A度,得到图像J,请写出J的生成算法(可以使用近

6、邻插值)。clear;%此题是用最近邻域法实现图像旋转im1=imread(b.jpg);m,n,p=size(im1);% 将图像旋转30度a=0.5; %a=sin30=0.5b=0.866; %b=cos30=0.866row=n*a+m*b;col=n*b+m*a;for i=1:row %先把图象填充成全黑 for j=1:col im2(i,j,:)=uint8(0); endend for i=1:m %把原图象像素点旋转后变为新图象点 for j=1:n xx=round(abs(i-m/2)*b-(j-n/2)*a+row/2); yy=round(abs(i-m/2)*a+

7、(j-n/2)*b+col/2); for k=1:3 im2(xx,yy,k)=im1(i,j,k); end endendtemp1=uint8(0);temp2=uint8(0);temp3=uint8(0);for i=1:row %把画面上的空点按照最近邻插值法填充 temp1=uint8(0); temp2=uint8(0); temp3=uint8(0); for j=1:col %找到最右的图象边界点 if (im2(i,j,:)=uint8(0) else kk=j; end end for j=1:kk if (im2(i,j,:)=uint8(0) im2(i,j,1)=

8、temp1; im2(i,j,2)=temp2; im2(i,j,3)=temp3; else temp1=im2(i,j,1); temp2=im2(i,j,2); temp3=im2(i,j,3); end endend imshow(im1);figure;imwrite(im1,5.jpg); %保存原图像imshow(im2);imwrite(im2,6.jpg);%保存旋转后图像4、 请写出生成 (2N+1)(2N+1)大小的高斯模板H(方差为sigma)的方法。5、 请写出生成 (2N+1)(2N+1)大小的高斯一阶导数模板HX(水平方向的梯度)、HY(垂直方向的梯度)(高斯的方

9、差为sigma)的方法。6、请写出使用大小为(2N+1)(2N+1)模板H对图像I进行滤波,生成图像J的方法。7、请写出使用大小为33的模板对图像I进行中值滤波,生成图像J的方法。clear; A=imread(num22,bmp); subplot(1,2,1); B=rgb2gray(A); subimage(B); title(处理前的图); C=B; xsize=size(B); for k=2:(xsize(1)-1) for j=2:(xsize(2)-1) t=B(k-1:k+1,j-1:j+1); C(k,j)=median(t(1:9); end end subplot(1,

10、2,2); subimage(C); title(处理后的图);8、 请写出求 Otsu阈值(即最大类间距准则)的计算方法。 试证明采用最大类间距准则计算出的阈值与采用最小类内距准则计算出的阈值相同。9、 设有一幅二值图像(元素取值为0或1),请生成该图像的标记图像。(即第一个连通区域中的每一个白色像素的值都置为1,第二个连通区域中的每一个白色像素的值都置为2,依此类推。区域编号可不考虑顺序)clear all;close all;clc;img=imread(liantong.bmp);imgn=img128;s=uint8(1-imgn); % s=0 0 0 0 0 0 0 0 0 0

11、0 0 0 0 0 0 0;0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0; %这个矩阵是维基百科中的矩阵1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0;0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0;0 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0;1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0;0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 0;0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;%imshow(mat2gra

12、y(s);m n=size(s);tmp=zeros(m,n); %标记图像label=1;queue_head=1; %队列头queue_tail=1; %队列尾neighbour=-1 -1;-1 0;-1 1;0 -1;0 1;1 -1;1 0;1 1; %和当前像素坐标相加得到八个邻域坐标for i=2:m-1 for j=2:n-1 if s(i,j)=1 & tmp(i,j) =0 tmp(i,j)=label; qqueue_tail=i j; %用元组模拟队列,当前坐标入列 queue_tail=queue_tail+1; while queue_head=queue_tail pix=qqueue_head; for k=1:8 %8邻域搜索

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 国内外标准规范

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号