激光光斑中心位置及大小的确定Matlab.docx

上传人:b****3 文档编号:6767769 上传时间:2023-05-10 格式:DOCX 页数:13 大小:356.79KB
下载 相关 举报
激光光斑中心位置及大小的确定Matlab.docx_第1页
第1页 / 共13页
激光光斑中心位置及大小的确定Matlab.docx_第2页
第2页 / 共13页
激光光斑中心位置及大小的确定Matlab.docx_第3页
第3页 / 共13页
激光光斑中心位置及大小的确定Matlab.docx_第4页
第4页 / 共13页
激光光斑中心位置及大小的确定Matlab.docx_第5页
第5页 / 共13页
激光光斑中心位置及大小的确定Matlab.docx_第6页
第6页 / 共13页
激光光斑中心位置及大小的确定Matlab.docx_第7页
第7页 / 共13页
激光光斑中心位置及大小的确定Matlab.docx_第8页
第8页 / 共13页
激光光斑中心位置及大小的确定Matlab.docx_第9页
第9页 / 共13页
激光光斑中心位置及大小的确定Matlab.docx_第10页
第10页 / 共13页
激光光斑中心位置及大小的确定Matlab.docx_第11页
第11页 / 共13页
激光光斑中心位置及大小的确定Matlab.docx_第12页
第12页 / 共13页
激光光斑中心位置及大小的确定Matlab.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

激光光斑中心位置及大小的确定Matlab.docx

《激光光斑中心位置及大小的确定Matlab.docx》由会员分享,可在线阅读,更多相关《激光光斑中心位置及大小的确定Matlab.docx(13页珍藏版)》请在冰点文库上搜索。

激光光斑中心位置及大小的确定Matlab.docx

激光光斑中心位置及大小的确定Matlab

燕山大学

课程设计说明书

 

题目:

20目标位置及大小的确定

 

学院(系):

电气工程学院

年级专业:

09级仪表三班

学号:

((

学生姓名:

)))

指导教师:

林洪彬王志彬

教师职称:

讲师副教授

 

燕山大学课程设计(论文)任务书

院(系):

电气工程学院基层教学单位:

自动化仪表系

学号

))

学生姓名

——————

专业(班级)

09级仪表三班

设计题目

20目标位置及大小的确定

几句图像处理的知识,确定图像中两点的中心点的位置,并能确定其大小(即半径),尽量使用较多的方法实现,并且比较每种方法的处理速度。

 

实际确定图像中两点的中心点的位置,并且确定该两点的半径。

实际中应具有自己的实际思想、设计体会。

了解Matlab的基本操作,查找与课程设计相关的资料,编写程序并调试,写论文,准备课程设计答辩。

12月19日,熟悉Matlab的基本操作

12月20日,查找与课程设计课题相关的资料

12月21日,设计程序并调试

12月22日,调试程序并写论文

12月23日,整理论文,课程设计答辩

 

1、数字图像处理学电子公告也出版社贾永红2003

2、数字图像处理(Matlab版)电子工业出版社冈萨雷斯2006

3、其他数字图像处理和matlab变成发面的书记及相关学习资料

指导教师签字

林洪彬王志斌

基层教学单位主任签字

谢平

说明:

此表一式四份,学生、指导教师、基层教学单位、系部各一份。

2011年12月23日

燕山大学课程设计评审意见表

指导教师评语:

成绩:

指导教师:

2011年12月23日

答辩小组评语:

成绩:

评阅人:

2011年12月23日

课程设计总成绩:

答辩小组成员签字:

童凯林洪彬程淑红

 

2011年12月23日

摘要

首先对图像进行二值化,然后用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%

fori=1:

length(stats)

A=[Astats(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%

fori=1:

length(stats)

A=[Astats(i).Area];%'Area'是标量,计算出在图像各个区域中像素总个数。

%

End

[mA,ind]=max(A);

I1=I;

I1(find(L~=ind))=0;

figure;

imshow(I1)

holdon;

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。

应用举例

  例一:

  在matlab的命令窗口输入:

  

X=linspace(1,100)

  将产生从1到100步长为1的数组。

类似于在命令窗口中输入:

  X=[1:

1:

100]

  例二:

  在命令窗口中输入:

  X=linspace(5,100,20)

  将输出:

  X=

  5101520253035404550556065707580859095100

  这和X=[5:

5:

100]的效果是一样的。

%

c1=stats(ind).Centroid;%'Centroid'是1行ndims(L)列的向量,给出每个区域的质心(重心)。

注意:

Centroid的第一个元素是重心水平坐标(x坐标)、第二个元素是重心垂直坐标(y坐标)。

Centroid所有其它元素则按照维顺序排列。

a1=stats(ind).MajorAxisLength;%'MajorAxisLength'是标量,与区域具有相同标准二阶中心矩的椭圆的长轴长度(像素意义下)。

标准二阶中心矩就是标准方差%

b1=stats(ind).MinorAxisLength;%'MinorAxisLength'是标量,与区域具有相同标准二阶中心矩的椭圆的短轴长度(像素意义下)%

d1=stats(ind).Eccentricity;%'Eccentricity'是标量,与区域具有相同标准二阶中心矩的椭圆的离心率(可作为特征)%

x1=c1

(1)+d1*b1*cos(t);

y1=c1

(2)+d1*a1*sin(t);

m=plot(x1,y1,'b-');%拟合出一个蓝色的圆

第三节拟合效果

t=linspace(0,2*pi,N)中,N=7时的效果

t=linspace(0,2*pi,N)中,N=500时的效果

 

第四章求圆心及半径

通过在所拟合的圆上任取三个点,通过这三个点确定远的圆心和蚌精

x2=x1(1,1);

y2=y1(1,1);

x3=x1(1,30);

y3=y1(1,30);

x4=x1(1,80);

y4=y1(1,80);

a=2*(x3-x2);

b=2*(y3-y2);

n=(x3*x3+y3*y3-x2*x2-y2*y2);

d=2*(x4-x3);

e=2*(y4-y3);

f=(x4*x4+y4*y4-x3*x3-y3*y3);

x0=(b*f-e*n)/(b*d-e*a+eps)%求圆心坐标

y0=(d*n-a*f)/(b*d-e*a+eps)

r0=sqrt((x0-x2)*(x0-x2)+(y0-y2)*(y0-y2))%求半径

第五章完整的Matlab程序

clc;

clearall;

closeall;

I=imread('1.jpg');

I=im2bw(I);

figure;

imshow(I);

L=bwlabel(I);

stats=regionprops(L,{'Area','ConvexHull','MajorAxisLength',...

'MinorAxisLength','Eccentricity','Centroid'});

A=[];

fori=1:

length(stats)

A=[Astats(i).Area];

end

[mA,ind]=max(A);

I1=I;

I1(find(L~=ind))=0;

figure;

imshow(I1);

holdon;1

temp=stats(ind).ConvexHull;

t=linspace(0,2*pi,500);

c1=stats(ind).Centroid;

a1=stats(ind).MajorAxisLength;

b1=stats(ind).MinorAxisLength;

d1=stats(ind).Eccentricity;

x1=c1

(1)+d1*b1*cos(t);

y1=c1

(2)+d1*a1*sin(t);

m=plot(x1,y1,'g-');

x2=x1(1,1);

y2=y1(1,1);

x3=x1(1,30);

y3=y1(1,30);

x4=x1(1,80);

y4=y1(1,80);

a=2*(x3-x2);

b=2*(y3-y2);

n=(x3*x3+y3*y3-x2*x2-y2*y2);

d=2*(x4-x3);

e=2*(y4-y3);

f=(x4*x4+y4*y4-x3*x3-y3*y3);

x0=(b*f-e*n)/(b*d-e*a+eps)%求圆心

y0=(d*n-a*f)/(b*d-e*a+eps)

r0=sqrt((x0-x2)*(x0-x2)+(y0-y2)*(y0-y2))%求半径

总结

通过此次数字图像课程设计,在完成任务“目标中心位置及大小的确定”的过程中,了解了更多的关于数字图像的知识。

比如说,图像的灰度变换,图像的二值化转换,对某一图像进行去噪声处理,圆的拟合等。

此次课程设计的有些程序是从网上找的,通过学习更加拓宽了我的知识面。

有些地方还不太完美,需要改进,恳请老师批评,指正。

参考文献资料

1、数字图像处理学电子公告也出版社贾永红2003

2、数字图像处理(Matlab版)电子工业出版社冈萨雷斯2006

3、其他数字图像处理和matlab变成发面的书记及相关学习资料

..

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 笔试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2