激光光斑中心位置及大小的确定Matlab讲解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
燕山大学
课程设计说明书题目:20 目标位置及大小的确定
学院(系):电气工程学院
年级专业: 09级仪表三班
学号:((
学生姓名:)))
指导教师:林洪彬王志彬
教师职称:讲师副教授
燕山大学课程设计(论文)任务书
院(系):电气工程学院基层教学单位:自动化仪表系
说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。
燕山大学课程设计评审意见表
摘要
首先对图像进行二值化,然后用bwlabel,regionprops等函数对二值图像进行去除噪声操作,然后通过找出与所求区域具有相同标准二阶中心矩的椭圆的长轴长度,短轴长度,离心率等,并找出包含所求区域的最小凸多边形,的顶点坐标。通过一定的方法,用所求椭圆的相关参数确定一个正多边形。使该正多边形具有一个相当大的边数,是该多边形接近一个圆。这个圆就是所要拟合的圆。最后通过三个点求圆的中心和半径。
关键字二值化处理去噪声处理圆的拟合已知三点求圆的中心和半径
目录第一章彩色图像的二值化
1图像的二值化原理
2 图像的二值化的程序实现
3二值化前后效果对比
第二章去除噪声
1去除噪声的原理
2去除噪声的程序实现
3去除噪声前后的图像对比
第三章圆拟合
1圆拟合原理
2圆拟合的程序实现
3拟合效果
第四章求圆心及半径
第五章完整的Matlab程序
总结
参考文献资料
第一章彩色图像的二值化
第一节图像的二值化原理
图像的二值化处理就是将图像上的点的灰度置为0或255,也就是讲整个图像呈现出明显的黑白效果。即将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可以反映图像整体和局部特征的二值化图像。在数字图像处理中,二值图像占有非常重要的地位,特别是在实用的图像处理中,以二值图像处理实现而构成的系统是很多的,要进行二值图像的处理与分析,首先要把灰度图像二值化,得到二值化图像,这样子有利于再对图像做进一步处理时,图像的集合性质只与像素值为0或255的点的位置有关,不再涉及像素的多级值,使处理变得简单,而且数据的处理和压缩量小。所有灰度大于或等于阀值的像素被判定为属于特定物体,其灰度值为255表示,否则这些像素点被排除在物体区域以外,灰度值为0,表示背景或者例外的物体区域。
第二节图像的二值化的程序实现
方法一:首先将图像转变为灰度图像,再利用max,min等函数求阈值分割点,最后转化为二值化图像
相关程序:
J=imread('1.jpg'); %读图像
figure;imshow(J); %显示原始图像
P=rgb2gray(J); %转换为灰度图像
[m,n]=size(P); %获取图像的行数和列数
ma=max(max(P)); %求最大值
mi=min(min(P)); %求最小值
limen=(ma+mi)/2; %求分割阈值
I=(P>limen); %二值化
figure;imshow(I); %显示二值化图像
方法二:首先将图像转变为灰度图像,再利用graythresh等函数求阈值分割点,最后用函数im2bw进行二值化。
J=imread('1.jpg'); %读图像
P=rgb2gray(J);%转换为灰度图像level=graythresh(P);%求分割阈值I=im2bw(P,level);%二值化imshow(I); %显示二值化图像第三节二值化前后效果对比
第二章去除噪声
第一节去除噪声的原理
噪声在理论上可以定义为“不可预测,只能用概率统计方法来认识的随机误差”。实际获得的图像一般都因受到某种干扰而含有噪声。引起噪声的原因有敏感元器件的内部噪声、相片底片上感光材料的颗粒、传输通道的干扰及量化噪声等。噪声产生的原因决定了噪声的分布特性及它和图像信号的关系。
先利用bwlabel函数标注连通区域,在通过regionprops函数找出其中的噪声区域,并置零,以此达到去除噪声的目的。
第二节去除噪声的程序实现
L = bwlabel(I); % 功能:标注二进制图像中已连接的部分。
stats = regionprops(L, {'Area', 'ConvexHull', 'MajorAxisLength', ...
'MinorAxisLength', 'Eccentricity', 'Centroid'}); %用来度量图像区域属性的函数。测量标注矩阵L中每一个标注区域的一系列属性。L中不同的正整数元素对应不同的区域。% A = []; %定义数组A%
for i = 1 : length(stats)
A = [A stats(i).Area]; % 'Area'是标量,计算出在图像各个区域中像素总个数。% End
[mA, ind] = max(A);
I1 = I;
I1(find(L~=ind)) = 0;
Figure ;
imshow(I1);
第三节去除噪声前后的图像对比
第三章圆拟合
第一节圆拟合原理
首先通过regionprops函数找出与所求区域具有相同标准二阶中心矩的椭圆的长轴长度,短轴长度,离心率等,并找出包含所求区域的最小凸多边形,的顶点坐标。通过一定的方法,用所求椭圆的相关参数确定一个正多边形。使该正多边形具有一个相当大的边数,是该多边形接近一个圆。这个圆就是所要拟合的圆。在指令t = linspace(0, 2*pi,N)中,N-1表示所求正多边形的边数,N越大,所拟合的圆越精确。
第二节圆拟合的程序实现
stats = regionprops(L, {'Area', 'ConvexHull', 'MajorAxisLength', ...
'MinorAxisLength', 'Eccentricity', 'Centroid'}); %用来度量图像区域属性的函数。测量标注矩阵L中每一个标注区域的一系列属性。L中不同的正整数元素对应不同的区域。% A = []; %定义数组A%
for i = 1 : length(stats)
A = [A stats(i).Area]; % 'Area'是标量,计算出在图像各个区域中像素总个数。% End
[mA, ind] = max(A);
I1 = I;
I1(find(L~=ind)) = 0;
figure;
imshow(I1)
hold on;
temp = stats(ind).ConvexHull; % 'ConvexHull'是p行2列的矩阵,包含某区域的最小凸多边形。此矩阵的每一行存储此多边形一个顶点的xy坐标。%
t = linspace(0, 2*pi); % 用法:linspace(x1,x2,N)
功能:linspace是Matlab中的一个指令,用于产生x1,x2之间的N点行矢量。其中x1、x2、N分别为起始值、终止值、元素个数。若缺省N,默认点数为100。