MATLAB考试复习月_第1页
MATLAB考试复习月_第2页
MATLAB考试复习月_第3页
MATLAB考试复习月_第4页
MATLAB考试复习月_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、考试复习1题型:选择题(10分),判断题(10分)填空题(20分)程序解释题(15分)简答题(25分)综合题(20分)2考试范围: 以上课PPT为主导,以及我们做的7次实验的内容,理解实验程序。(1) 直方图含义,灰度图,索引图和二值图的含义。答:灰度直方图是灰度级的函数,是对图像中灰度级分布的统计,反映的是一幅图像中各灰度级像素出现的频率。横坐标表示灰度级,纵坐标表示图像中对应某灰度级所出现的像素个数,也可以是某一灰度值的像素数占全图像素数的百分比,即灰度级的频率。灰度直方图只能反映图像的灰度分布,而不能反映图像像素的位置,即丢失了像素的位置信息。一幅图像对应唯一的灰度直方图,反之不成立。不

2、同的图像可对应相同的直方图。一幅图像分成多个区域,多个区域的直方图之和即为原图像的直方图。灰度直方图求双峰或多峰选择两峰之间的谷底作为阈值。存储灰度图像只需要一个数据矩阵,数据类型可以是double也可以是uint8。一幅灰度图像是一个数据矩阵 I,其中数据均代表了在一定范围内的颜色灰度值。Matlab 把灰度图像用数据矩阵的形式进行存储,每个元素则表示了图像中的每个像素。矩阵元素可以是doudle、uint8整数类型。索引图像是把像素值作为RGB调色板下标的图像。索引色图像包含2个结构,一个是调色板map;另一个是图像数据矩阵X。调色板是一个有3列和若干行的色彩映像矩阵,矩阵每行代表一种色彩

3、,通过3个分别代表红、绿、蓝颜色强度的双精度数,形成一种特定颜色。图像数据是uint8或是双精度的。索引图像包括数据矩阵X和颜色映像矩阵map。其中map是一个p×3的数据矩阵,其每个元素的值均为0, 1之间双精度浮点型数据。map矩阵的每一行分别表示红色、绿色和蓝色的颜色值。而数据矩阵X可以是double和uint8型的。真彩色图像用 R、G、B 3个分量表示1个像素的颜色,数据结构是一个m×n×3的多维数组。如果读取图像中(100,50)处像素值,可以查看三元组(100,50,1:3)。与灰度图像相同,二值图像只需一个数据矩阵,每个像素只有2个灰度值。可以采用

4、uint8或double类型存储,工具箱中以二值图像作为返回结果的函数都使用uint8类型。二值图像是一个逻辑类,包括0和1两个数值,像素0显示为黑色,像素1显示为白色。通过NOT()命令可对二进制图像取反,数值0显示为白色,1显示为黑色。(2) 边缘检测的边缘跟踪原理基于边缘检测的图像分割方法的基本思路是先确定图像中的边缘像素,然后就可把它们连接在一起构成所需的边界。图像边缘意味着图像中一个区域的终结和另一个区域的开始,图像中相邻区域之间的像素集合构成了图像的边缘。进一步讲,图像的边缘是指图像灰度发生空间突变的像素的集合。 ROBERTS算子、SOBEL算子、CANNY算子、PREWITT算

5、子。从图像中一个边缘点出发,然后根据某种判别准则搜索下一个边缘点以此跟踪出目标边界。确定边界的起始搜索点,起始点的选择很关键,对某些图像,选择不同的起始点会导致不同的结果。确定合适边界判别准则和搜索准则,判别准则用于判断一个点是不是边界点,搜索准则则指导如何搜索下一个边缘点。确定搜索的终止条件。(轮廓跟踪法,光栅跟踪法)BW = imread('blobs.png');%读取图像B,L,N,A = bwboundaries(BW);%返回边界、标签矩阵、目标数、邻接矩阵imshow(BW); hold on;%显示图像for k=1:length(B), if(sum(A(k,

6、:) boundary = Bk; plot(boundary(:,2), boundary(:,1), 'r','LineWidth',2);%显示目标边界 for l=find(A(:,k)' boundary = Bl; plot(boundary(:,2), boundary(:,1), 'g','LineWidth',2);%显示内部边界 end endend(3) 形态学运算中的四种运算的含义,区别腐蚀:由所有可以填入A内部的结构元素的原点组成。将图像平移-b(b属于结构元素),并计算所有平移的交集而得到。膨胀

7、:结构元素的反射与图像的交集至少有一个像素开运算:轮廓被平滑,细长的部分被去除,小的孤岛被去除。细长的突出被去除,目标像素变成背景(先腐蚀后膨胀)闭运算:狭窄的间断被填充,背景像素变成目标。闭运算是开运算的对偶运算(先膨胀后腐蚀)(4) 区域生长的实现思路将一个图像中的一点作为种子,此种子会8邻域/4邻域进行扩展,扩展一定限制(即差值不能过大,当然你可以引入梯度这个概念,甚至二维偏导数),求出种子生长的最终结果。开始时确定一个或多个象素点作为种子,然后按某种相似性准则增长区域,逐步生成具有某种均匀性的空间区域,将相邻的具有相似性质的象素或区域归并从而逐步增长区域,直至没有可以归并的点或其它小区

8、域为止。区域内象素的相似性度量可以包括平均灰度值、纹理、颜色等信息。 (5) 腐蚀中结构元素原点的作用结构元素是在特定研究目的下用来探测图像的一个小的集合或者子图像。由所有可以填入A内部的结构元素的原点组成。当原点不在集合中心时,腐蚀结果的形状不变,但是位置会发生偏移。原点在结构元素内部时,腐蚀结果也在原始图像内部。原点在结构元素外部时,腐蚀结果偏离了原始图像的位置。凹陷的角在腐蚀后具有结构元素的形状。原始图像凸出的角在腐蚀后保持不变。(6) OTSU算法的实现原理及思路(7) 熟悉试验内容中蓝色检测的程序思路close all; clear all; clc;%读入一张图片data=imre

9、ad('蓝玫瑰.jpg');%原图像与灰度图像进行相减diff_im = imsubtract(data(:,:,3), rgb2gray(data);figure,imshow(data(:,:,3);figure,imshow(diff_im);%medfilt2函数用于执行二维中值滤波diff_im = medfilt2(diff_im, 3 3);diff_im = im2bw(diff_im,0.05);% bwareaopen(BW,P,conn),删除二值图像BW中面积小于P的对象,默认情况下conn使用8邻域diff_im = bwareaopen(diff_i

10、m,2000);%腐蚀膨胀函数,对连通对象进行标注,bwlabel主要对二维二值图像中各个分离部分进行标注bw = bwlabel(diff_im, 8);%统计被标记的区域的面积分布,显示区域总数stats = regionprops(bw, 'BoundingBox', 'Centroid');%BoundingBox为矩形框,Centroid为质心figure,imshow(data)hold onfor object = 1:length(stats)bb = stats(object).BoundingBox;bc = stats(object).Ce

11、ntroid;%求矩形框的重心rectangle('Position',bb,'EdgeColor','r','LineWidth',2)plot(bc(1),bc(2), '-m+')a=text(bc(1)+15,bc(2), strcat('X: ', num2str(round(bc(1), 'Y: ', num2str(round(bc(2);set(a, 'FontName', 'Arial', 'FontWeight',

12、'bold', 'FontSize', 12, 'Color', 'yellow');h(object)=round(bc(1);z(object)=round(bc(2);endhold off(8) 车牌识别的算法过程 灰度化rgb2gray、灰度变换imadjust、图像去噪medfilt2、边缘检测edge/imerode/imclose/bwareaopen/、形态学处理clear all;close all;I=imread('车牌5.jpg');figure(1);subplot(211);imsho

13、w(I);title('原始图像');I_gray=rgb2gray(I);subplot(212);imshow(I_gray);title('灰度图像');I_med=medfilt2(I_gray,3,3);imshow(I_med);title('中值滤波后的图像');I_imad=imadjust(I_med);imshow(I_imad);title('灰度变换后的图像');I_edge=edge(I_imad,'canny');imshow(I_edge),title('边缘检测后盾额图像&#

14、39;);se=1;1;1;I_erode=imerode(I_edge,se);se=strel('rectangle',25,25);I_close=imclose(I_erode,se);I_final=bwareaopen(I_close,2000);imshow(I_final);title('形态滤波后图像');%腐蚀、闭运算y,x,z=size(I_final);I6=double(I_final);Y1=zeros(y,1);for i=1:y for j=1:x if(I6(i,j,1)=1) Y1(i,1)=Y1(i,1)+1; end en

15、dendtemp MaxY=max(Y1);PY1=MaxY;while(Y1(PY1,1)>=50)&&(PY1>1) PY1=PY1-1;endPY2=MaxY;while(Y1(PY2,1)>=50)&&(PY2<y) PY2=PY2+1;endX1=zeros(1,x);for j=1:x for i=PY1:PY2 if(I6(i,j,1)=1) X1(1,j)=X1(1,j)+1; end endendPX1=1;while(X1(1,PX1)<3)&&(PX1<x) PX1=PX1+1;endPX

16、2=x;while(X1(1,PX2)<3)&&(PX2>PX1) PX2=PX2-1;endPX1=PX1-1;PX2=PX2+1;PY1=PY1+10/220*(PY2-PY1);PX1=PX1+15/440*(PX2-PX1);PX2=PX2-15/440*(PX2-PX1);dw=I(PY1:PY2,PX1:PX2,:);figure;imshow(dw);bw=im2bw(dw);b=bwareaopen(bw,10);I_final=bwmorph(bw,'thin');figure,imshow(I_final);(9) 理解试验6的圆

17、检测和直线检测的程序,包括主要用到的hough检测的几个函数。Hough变换可以用于将边缘像素连接起来得到边界曲线H, theta, rho = hough(BW)H, theta, rho = hough(BW,PARAM1,VAL1,PARAM2,VAL2)其中BW是测试图像,PARAM1、VAL1、PARAM2和VAL2可以设置具体的参数和取值,clc; clear; close allticname path = uigetfile('*.jpg','JEPG File''*.bmp','bit File''*.t

18、if','ALL Image Files','open image file');img= imread(path name);figure,subplot(221),imshow(img);title('原图');gray=rgb2gray(img);level=graythresh(gray);bw=im2bw(gray,level); nhood=true(9);bw1=imclose(bw,nhood); bw2=imopen(bw1,nhood); BW1=bw2; BW = edge(BW1,'canny');

19、%使用canny方法检测目标边界subplot(222), imshow(BW);%显示边界的二值图像H,theta,rho = hough(BW);%hough变换subplot(223), imshow(imadjust(mat2gray(H),'XData',theta,'YData',rho,. 'InitialMagnification','fit');%显示hough变换的变换矩阵xlabel('theta (degrees)'), ylabel('rho');axis on, axis

20、 normal, hold on;colormap(hot)%颜色映射表P = houghpeaks(H,5,'threshold',ceil(0.3*max(H(:);%hough变换的极值点x = theta(P(:,2);y = rho(P(:,1);plot(x,y,'s','color','black');%画出极值点lines = houghlines(BW,theta,rho,P,'FillGap',.5,'MinLength',7);%返回直线的端点%subplot(224), im

21、show(img), hold onmax_len = 0;for k = 1:length(lines) xy = lines(k).point1; lines(k).point2; plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');%检测到的直线 plot(xy(1,1),xy(1,2),'x','LineWidth',2,.'Color','yellow');%起始端点 plot(xy(2,1),xy(2,2),'x

22、','LineWidth',2,.'Color','red');%终止端点 len = norm(lines(k).point1 - lines(k).point2);%直线的长度 if ( len > max_len) max_len = len;%确定最长的直线 xy_long = xy; endendplot(xy_long(:,1),xy_long(:,2),'LineWidth',2,.'Color','cyan');%绘制最长的直线tocclear;close all;na

23、me path = uigetfile('*.jpg','JEPG File''*.bmp','bit File''*.tif','ALL Image Files','open image file');I=imread(path name);%读取图片gray=rgb2gray(I);%rgb转换为灰度图bw = edge(gray, 'canny');%边缘检测figure,imshow(bw);title('边缘检测'); radii = 15:

24、1:100;%设置需要检测圆的半径范围,radii包括从15到100之间86个半径 %调用函数h, margin = circle_hough(b, rrange, varargin)% b(二值边缘检测图),rrange(待检测圆形半径范围), margin(边缘)h = circle_hough(bw, radii, 'same', 'normalise');% 返回3-D矩阵h,包括86个column和row都和原图相同的矩阵, same'(做简化处理),'normalise'(避免偏向于寻找更大的圈子) %这段代码仅用于调试h1=

25、h(:,:,1);h2=h(:,:,6);h3=h(:,:,11);h4=h(:,:,16);h5=h(:,:,21);h6=h(:,:,26);h7=h(:,:,31);h8=h(:,:,36);h9=h(:,:,81); figure,subplot(331),imshow(h1);title('r=15');subplot(332),imshow(h2);title('r=20');subplot(333),imshow(h3);title('r=25');subplot(334),imshow(h4);title('r=30

26、9;);subplot(335),imshow(h5);title('r=35');subplot(336),imshow(h6);title('r=40');subplot(337),imshow(h7);title('r=45');subplot(338),imshow(h8);title('r=50');subplot(339),imshow(h9);title('r95'); figure,imshow(h1);title('r=15');% %返回矩阵peaks peaks(1)存放所有圆横坐标,peaks(2)存放所有圆的纵坐标,peaks(3)存放所有圆的半径peaks = circle_houghpeaks(h, radii, 'nhoodxy', 15, 'nhoodr', 21, 'npeaks', 10);%h(3-D矩阵),

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论