十字光斑中心光斑定位的图像课设.docx

上传人:b****6 文档编号:4481118 上传时间:2022-12-01 格式:DOCX 页数:23 大小:568.49KB
下载 相关 举报
十字光斑中心光斑定位的图像课设.docx_第1页
第1页 / 共23页
十字光斑中心光斑定位的图像课设.docx_第2页
第2页 / 共23页
十字光斑中心光斑定位的图像课设.docx_第3页
第3页 / 共23页
十字光斑中心光斑定位的图像课设.docx_第4页
第4页 / 共23页
十字光斑中心光斑定位的图像课设.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

十字光斑中心光斑定位的图像课设.docx

《十字光斑中心光斑定位的图像课设.docx》由会员分享,可在线阅读,更多相关《十字光斑中心光斑定位的图像课设.docx(23页珍藏版)》请在冰豆网上搜索。

十字光斑中心光斑定位的图像课设.docx

十字光斑中心光斑定位的图像课设

燕山大学

课程设计说明书

题目:

 激光十字光斑中心位置的定位 

学院(系) 电气工程学院   

年级专业:

 12级自动化仪表  

学  号:

 120103020133   

学生姓名:

 马冰卿      

指导教师:

 赵彦涛 吴晓光  

教师职称:

 副教授 讲师   

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

院(系):

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

 自动化仪表系

学号

120103020133

学生姓名

马冰卿

专业(班级)

仪表2班

设计题目

23激光十字光斑中心位置的定位

根据图像处理的知识,确定图像十字光斑中心点的位置,尽量使用较多的方法实现,并且比较每种方法的处理速度。

设计确定图像中亮点的中心点的位置,尝试不同的定位方法,并进行比较。

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

思考各种可行的方法,查阅大量的相关资料,并对每种方法进行比较,确定可行性与局限性,学习matlab数字图像处理方面的知识,编程实现所想的方法,在编程过程中,通过查阅相关书籍学习matlab编程知识,解决不懂的知识点,完善程序。

撰写报告,准备答辩。

周一,思考课题的解决方法和查阅相关资料。

周二,对所想方法进一步去实现,学习matlab中不会的知识,并开始编程。

周三,对每种办法的程序进行理解和错误纠正,并分析结果找出缺点。

周四,对程序进行完善并开始写报告。

周五,完善报告,打印出来,应对答辩。

1、数字图像处理学电子工业出版社贾永红2003

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

3、其他数字图像处理和matlab编程方面的书籍及相关学习资料

指导教师签字

 

基层教学单位主任签字

 

 

 

 

 

 

 

 

 

说明:

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

2014年12月12日

摘要

近年来数字图像处理技术发展迅猛,已经在多个领域上都有较广泛的应用。

但图像处理的信息量很大,对处理速度的要求也比较高,而Matlab强大的图像处理能力,使图像处理更加简单快捷和直观。

本文针对激光十字光斑中心位置的定位论述了三种方法,这三种方法均是基于Matlab的图像处理功能来实现的,分别为:

求两直线交点坐标定位法、找多个坐标取平均值定位法、基于图像灰度值差异定位法。

本文对三种方法分别做了介绍和分析,并针对处理结果做出比较与综合评价。

关键词:

数字图像处理,Matlab,激光十字光斑,中心定位

 

一、求两直线交点坐标定位法………………………………………………………………5

1.1设计思路……………………………………………………………………………5

1.2程序实现……………………………………………………………………………5

1.3结果显示……………………………………………………………………………6

二、找多个坐标取平均值定位法……………………………………………………………8

2.1设计思路……………………………………………………………………………8

2.2程序实现……………………………………………………………………………9

2.3结果显示……………………………………………………………………………10

三、基于图像灰度值差异定位法……………………………………………………………12

3.1设计思路……………………………………………………………………………12

3.2程序实现……………………………………………………………………………12

3.3结果显示……………………………………………………………………………13

四、三种方法的比较与分析…………………………………………………………………14

4.1结果精度比较………………………………………………………………………14

4.2运行速度比较………………………………………………………………………15

五、心得体会…………………………………………………………………………………15

六、参考文献…………………………………………………………………………………15

一、求两直线交点坐标定位法

1.1设计思路

1、先读取要处理的图像。

2、提取图像的R分量(因为其对比度较高)3、利用全局阈值分割法将R分量图像二值化。

4、再利用find函数分别找出十字光斑图像的最小横坐标a1、最大横坐标a2和最小纵坐标b1、最大纵坐标b2,然后利用循环语句找出a1行,a2行,b1列,b2列中像素为1的坐标值。

5、对a1行值为1的像素所在列数进行记录,并取平均值,即为十字最上方的横坐标x1,同理对待a2行,求得十字最下方的横坐标x2;对b1列值为1的像素所在行数进行记录,并取平均值,即为十字最左方的纵坐标y1,同理对待b2列,求得十字最右方的纵坐标y2。

6、利用所找到的四个点(x1,a1)、(x2,a1)、(b1,y1)、(b2,y2)可写出两条直线方程,再利用解线性方程组方法求得交点,即求得中心点坐标。

1.2程序实现

clearall;clc;

I=imread('C:

\Users\lenovo\Desktop\23十字光斑\十字光斑.JPG');

I1=imread('C:

\Users\lenovo\Desktop\23十字光斑\十字光斑2.JPG');

I2=imread('C:

\Users\lenovo\Desktop\23十字光斑\十字光斑3.JPG');

R=I1(:

:

1);

subplot(121);imshow(I1);title('原图像');

subplot(122);imshow(R);title('原图像的R分量');

B=im2bw(R,graythresh(R));%将图像二值化

figure,imshow(B);title('二值化图像');

[a,b]=find(B);

a1=min(a);

a2=max(a);

b1=min(b);

b2=max(b);

[M,N]=size(B);

c=1;

fori=1:

M

if(B(i,b1)==1)

m(c)=i;

c=c+1;

end

end 

d=1;

foro=1:

M

if(B(o,b2)==1)

m1(d)=o;

d=d+1;

end

end

e=1;

forj=1:

N

if(B(a1,j)==1)

n(e)=j;

e=e+1;

end

end

f=1;

forh=1:

N

if(B(a2,h)==1)

n1(f)=h;

f=f+1;

end

end

x1=mean(n);%纵坐标为a1

x2=mean(n1);%纵坐标为a2

y1=mean(m);%横坐标为b1

y2=mean(m1);%横坐标为b2

k1=(a2-a1)/(x2-x1);%十字竖线的斜率

k2=(y2-y1)/(b2-b1);%十字横线的斜率

O=[k1,-1;k2,-1];

P=[k1*x1-a1;k2*b1-y1];

L=O\P;%解线性方程组

X=L

(1);

Y=L

(2);

fprintf('激光十字线中心位置点横坐标%6.2f\n',X);

fprintf('激光十字线中心位置点纵坐标%6.2f\n',Y);

X1=round(X);Y1=round(Y);

R(Y1-1:

Y1+1,X1-1:

X1+1)=1;

figure,imshow(R);title('将中心点显示出来');

1.3结果显示

将中心点显示到图像中:

运行结果显示为:

二、找多个坐标取平均值定位法

2.1设计思路

1、先读取要处理的图像。

2、提取图像的R分量(因为其对比度较高)3、利用全局阈值分割法将R分量图像二值化。

4、再利用find函数分别找出十字光斑图像的最小横坐标a1、最大横坐标a2和最小纵坐标b1、最大纵坐标b2,然后利用循环语句找出a1行,a2行,b1列,b2列中像素为1的坐标值。

5、对a1行值为1的像素所在列数进行记录,并取平均值,即为十字最上方的横坐标x1,同理对待a2行,求得十字最下方的横坐标x2;对b1列值为1的像素所在行数进行记录,并取平均值,即为十字最左方的纵坐标y1,同理对待b2列,求得十字最右方的纵坐标y2。

6、对最上方与最下方的横坐标取平均值,即为中心点的横坐标;对最左方与最右方的纵坐标取平均值,即为中心点的纵坐标。

2.2程序实现

clearall;clc;

I=imread('C:

\Users\lenovo\Desktop\23十字光斑\十字光斑.JPG');

I1=imread('C:

\Users\lenovo\Desktop\23十字光斑\十字光斑2.JPG');

I2=imread('C:

\Users\lenovo\Desktop\23十字光斑\十字光斑3.JPG');

R=I1(:

:

1);

subplot(121);imshow(I1);title('原图像');

subplot(122);imshow(R);title('原图像的R分量');

B=im2bw(R,graythresh(R));%将图像二值化

figure,imshow(B);title('二值化图像');

[a,b]=find(B);

a1=min(a);

a2=max(a);

b1=min(b);

b2=max(b);

[M,N]=size(B);

c=1;

fori=1:

M

if(B(i,b1)==1)

m(c)=i;

c=c+1;

end

end

d=1;

foro=1:

M

if(B(o,b2)==1)

m1(d)=o;

d=d+1;

end

end

e=1;

forj=1:

N

if(B(a1,j)==1)

n(e)=j;

e=e+1;

end

end

f=1;

forh=1:

N

if(B(a2,h)==1)

n1(f)=h;

f=f+1;

end

end

x1=mean(n);

x2=mean(n1);

y1=mean(m);

y2=mean(m1);

X=(x1+x2)/2;Y=(y1+y2)/2;

fprintf('激光十字线中心位置点横坐标:

%6.2f\n',X);

fprintf('激光十字线中心位置点纵坐标:

%6.2f\n',Y);

X1=round(X);Y1=round(Y);

R(Y1-1:

Y1+1,X1-1:

X1+1)=0;

figure,imshow(R);title('将中心点显示出来');

2.3结果显示

将中心点显示到图像中:

运行结果显示为:

三、基于图像灰度值差异定位法

3.1设计思路

1、先读取要处理的图像。

2、提取图像的R分量(因为其对比度较高)。

3、创建一个3*3的邻域平均模板h,利用其对图像进行处理。

其目的是突出图像中某些邻域灰度值较大的点(因为图像中十字斑中心点附近邻域点灰度值之和较其它点大)4、利用循环对其进行规定次数多的处理。

5、找出处理后图像中灰度值最大的一个或多个点的行值和列值,对这些点的列值取平均值,即为中心点的横坐标,同理,对这些点的行值取平均值,即为中心点的纵坐标。

3.2程序实现

clearall;clc;

I=imread('C:

\Users\lenovo\Desktop\23十字光斑\十字光斑.JPG');

I1=imread('C:

\Users\lenovo\Desktop\23十字光斑\十字光斑2.JPG');

I2=imread('C:

\Users\lenovo\Desktop\23十字光斑\十字光斑3.JPG');

R=I1(:

:

1);

subplot(121);imshow(I1);title('原图像');

subplot(122);imshow(R);title('原图像的R分量');

B=R;

h=fspecial('average',3);%创建一个3*3的邻域平均模板

i=1;

whilei<=5;

B=imfilter(B,h);

i=i+1;

end

[x,y]=find(B==max(max(B)));%找出灰度值最大的点的坐标

X=mean(y);

Y=mean(x);

%因为可能有多个最大值相等,所以取这些点的坐标的均值近似估计为中心点的位置

fprintf('激光十字线中心位置点横坐标%6.2f\n',X);

fprintf('激光十字线中心位置点纵坐标%6.2f\n',Y);

X1=round(X);Y1=round(Y);

R(Y1-1:

Y1+1,X1-1:

X1+1)=0;

figure,imshow(R);title('将中心点显示出来');

3.3结果显示

将中心点显示到图像中:

运行结果显示为:

四、三种方法的比较与分析

4.1结果精度比较

分别放大三种方法处理后结果图,对比如下:

第一种方法放大图  第二种方法放大图

第三种方法放大图

 

通过对比以上三个图,可以清楚地知道:

第三种方法的结果最为精确,第一种和第二种方法黑点位置几乎一致,精度差不多。

而通过对其它图片的分析可知,第一种方法结果较第二种方法精确。

对于某些十字斑靠近边缘,且倾斜角较大的图像,第一种方法适用性较好,且较精确,但第二种方法则不适用,故第二种方法存在局限性。

第三种方法完全是自己设计的,是想根据中心点及其较小邻域内灰度值最大的特点来实现定位,所以采用3*3邻域平均模板对图像R分量进行处理,目的是使邻域灰度值较大的点的灰度值更加突出,然后找出最大的一个或几个点求均值,即为中心点。

但是模板对图像的处理次数的改变会影响精度,经验证处理次数小于10次时,精度最高,与中心点重合,所以程序中取值为5次。

当大于10次,小于100次时,精度虽下降,但精度也比前两种方法高。

当次数大于100时,结果精度与前两种方法一样。

所以第三种方法效果较好,且程序简单。

4.2运行速度比较

在程序实际运行中,由于无法精确测量时间,感觉这三种方法运行时间几乎没有差别,速度均较快。

但当第三种方法模板处理次数较大时,运行时间明显变长。

不过选取的次数比较小,所以时间与前两种方法几乎一样。

五、心得体会

通过这次数字图像处理课程设计,我深刻地理解数字图像处理是一种基于矩阵运算的综合性学科,同时也加深了我对于数字图像处理这门课程的认识,也认识到Matlab这个软件强大的数字图像处理能力,在对课题的思考与设计过程中,通过对不懂的问题的思考与解决的过程,进一步学习了数字图像处理的知识和Matlab在图像处理方面的编程知识。

这次课程设计,我学到了很多,也明白了自己存在的一些知识方面的欠缺,收获很多。

六、参考文献

1、数字图像处理学 电子工业出版社 贾永红 2003

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

3、其他数字图像处理和matlab编程方面的书籍及相关学习资料

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

指导教师评语:

成绩:

指导教师:

2014年12月12日

答辩小组评语:

成绩:

评阅人:

2014年12月12日

课程设计总成绩:

答辩小组成员签字:

赵彦涛程淑红王志斌童凯

2014年12月12日

 

 

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

当前位置:首页 > 幼儿教育 > 少儿英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1