十字光斑中心光斑定位的图像课设.docx
《十字光斑中心光斑定位的图像课设.docx》由会员分享,可在线阅读,更多相关《十字光斑中心光斑定位的图像课设.docx(23页珍藏版)》请在冰豆网上搜索。
十字光斑中心光斑定位的图像课设
燕山大学
课程设计说明书
题目:
激光十字光斑中心位置的定位
学院(系) 电气工程学院
年级专业:
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日