基于MATLAB的数码相机定位研究及实现

基于MATLAB的数码相机定位研究及实现
基于MATLAB的数码相机定位研究及实现

第31卷 第13期

2009年7月武 汉 理 工 大 学 学 报JOURNA L OF WUHAN UNIVERSIT Y OF TECHN OLOG Y Vol.31 No.13 J ul.2009DOI :10.3963/j.issn.167124431.2009.13.034

基于MAT LAB 的数码相机定位研究及实现

刘 阳,童恒庆,张 齐,熊

(武汉理工大学信息工程学院,武汉430070)

摘 要: 主要研究的是相机标定和双目定位问题。为了对相机进行标定,根据仿射变换理论,运用图像处理方法找到若干对应点,再用Lingo 软件通过最小二乘法标定了数码相机的内外部参数,建立起了靶标上的点与像点之间的对应关系。通过合理的假设和算法优化,减小了计算机求解的时间复杂度和空间复杂度,运算较快而且结果精度较高、鲁棒性好。

关键词: 数码相机标定; 双目定位; 仿射理论; 最小二乘法; 单因子变量法

中图分类号: TN 948.41文献标识码: A 文章编号:167124431(2009)1320130203R esearch and R ealization of Digital C amera C alibration B ased on MAT LAB

L IU Y ang ,TON G Heng 2qi ng ,ZHA N G Qi ,X ION G Zhe

(School of Information Engineering ,Wuhan University of Technology ,Wuhan 430070,China )

Abstract : This article mainly researches the demarcation of the camera and the positioning of eyes.In order to realize carry out the demarcation of the camera ,we must try to find certain corresponding points by using the affine transformation theory and image processing methods.Then we manage to figure out both the internal and external parameters of digital camera through east squares.In this way ,corresponding relationships can be established between points on the target and points on the image.By using reasonable assumptions and optimization algorithm ,we manage to reduce the time and space complexities of the algorithm and realize more accurate results in a shorter period of time.

K ey w ords : digital camera calibration ; positioning eyes ; affine theory ; least squares ; one 2variable method

收稿日期:2009203203.

基金项目:国家自然科学基金(60773210).

作者简介:刘 阳(19882),男,本科生.E 2mail :ly61042839@https://www.360docs.net/doc/2012329818.html,

双目视觉是多目视觉中最简单常用的方法,它不需要专门的主动光照射装置,通常在自然光或一定环境光照明的条件下,由分离一定距离的2个摄像机各自摄取对象的图像,找出空间物点在2个图像中的对应点,就能得到点的距离信息。研究了双目结构光系统中两相机图像和互相对应关系等,基于计算机视觉理论及相机成像原理的双目定位系统相对位置姿态选定测量方法。因为对标定点的像无法得到点像,所以在标定的平面上画出若干个圆,然后对这些圆的投影进行测量和分析,并建立能够在光心为原点的平面上确定标定圆心在像平面上的坐标的模型并计算。再分析对这种模型解出的圆心的精度和稳定性。

1 定位算法的数学建模

“定位”在这里主要指将靶标上的圆心在像平面上的对应点找出并表示出来,再计算靶标上圆的圆心在

像平面上的像坐标。图1是靶标示意图和靶标的像示意图。图1中的A 、B 、C 、D 、E 分别代表5张图片。

为了将图1(a )中的5张图片与图1(b )中图片的像一一对应起来,

首先应该在靶标平面和像平面上找出若干个对应点,并通过这些对应

点在各自坐标系中的坐标求出两坐标系间的转换矩阵[1]。首先应该

定义坐标系,主要用到以下几个坐标系:1)世界坐标系—(X 2Y 2Z );2)

以透镜光心为原点,光轴为z 轴建立相机坐标系—(x 2y 2z );3)以相机

坐标系(0,0,z )为原点,垂直于z 轴平面建立像平面坐标系—(x ′2

y ′

);4)与像平面坐标系重合建立图形数字坐标系—(u 2v )。假设靶标上某一点在世界坐标系中的坐标P (X w ,Y w ,Z w )。r 和t 分别为从世界坐标系到摄像机坐标系的旋转和平移参数矩阵,表示照相机在世界坐标系中的方位,称为照相机的外部参数。于是靶上的点p

(x ,y ,z )在世界坐标系中的坐标到相机坐标系的转换可表示为

x y z 1=r t 0T 1X w Y w

Z w 1

(1)

由相机坐标系转换到像平面坐标系p ′(x ′,y ′

),其转换过程符合中心投影或透视投影,可用齐次坐标与矩阵表示为

x ′

y ′

=f z ′x y (2) 根据式(1)

和式(2),即可像平面上将靶平面里的圆心的坐标p ′(x ′,y ′)表示出来z ′x ′y ′1=f 0000f 000000r t 0T 1X w

Y w

Z w 1

(3)

为了确定计算靶标上圆的圆心在像平面上的像坐标,首先用软件对图2

进行图像处理,读入图像,再将rgb 图形转换成1024×768的灰度值矩阵并

二值化,将边界找出,反色处理后如图2所示。处理的图形是以像素为单位的图像数字坐标系,并不能用物理单位直观

表示出该像素在图像中的位置,所以需要将以像素为单位的数字坐标系转换

到以mm 为单位像坐标系。设每个像素在x 轴与y 轴方向上的物理尺寸为

d x 、d y ,则图像中任意一个像素在2个坐标系下的坐标关系[2]为

u =x ′d x ′+u 0 v =y ′d y ′+v 0

(4) 用齐次坐标与矩阵形式将式(4)表示

x ′

y ′1

=d x ′s -u 0d x ′0

d y ′-v 0d y ′001u v 1

(5)式中,s 为畸变因子[3],根据变换公式(5),用软件将数字坐标系上边缘点转换

成像坐标系中表示,见图3。

虽然相机成像存在由噪声和畸变等因素产生的变形,但观察图2可知,像平面的轮廓基本呈椭圆形状。于是把这5个图形近似处理成椭圆,并在每个椭圆上随机取10个点进行最小二乘法拟合出椭圆方程。为减

131第31卷 第13期 刘 阳,童恒庆,张 齐,等:基于MA TLAB 的数码相机定位研究及实现

小误差,在每2个椭圆之间的4条切线中,只取外切线,最后选取了8条切线,18个切点[4]。

按照上述方法用Lingo程序求解,即可以得出靶标上5个圆心对应在像平面上的坐标。圆心在像平面上的分布见图4。

2 定位算法模型精度和稳定性的研究

根据投影的基本原理,靶标上的平面图形的边缘点的像点也必然为像的边界点。据此,可以在靶标上取n个圆形边界点p i(x i,y i)(i=1,2,…,n),在模型1所确定的参数条件下求出它所对应的像点在数字矩阵中的位置s i(u u,v i),再判断该点是否是边界点[5]。

a为判定通过时要求的外点数目下限,a为判定通过时要求的外点数目上限。a+a=d2且a、a均为正整数。(理论上只需a、a可取满足条件的任意值,但为了消除图形中的噪声可能引起的误判,一般不取端

值)。所以,检验通过率为:α=1

n

n

i=1

k i。

为检验模型的稳定性,给外部参数一些扰动(即改变照相

机的空间姿态),在不同的外部参数条件下对一个圆进行拍照,

然后进行精度检验,计算检验通过率α,观察扰动对模型精度的

影响,[6]。

1)角度扰动模拟。保持靶标的圆心到相机光心的距离为

5f不变,改变靶标与光轴的夹角,计算不同角度下的检验通过

率α。

2)距离扰动模拟。保持靶标与光轴的夹角为30°不变,改变

靶标上圆的圆心到照相机光心的距离,计算不同距离时的检验

通过率α。模拟实验结果,见图5。

3 结 语

研究了双目结构光系统中两相机图像和互相对应关系等,基于计算机视觉理论及相机成像原理的双目定位系统相对位置姿态选定测量方法。根据仿射理论找到了部分靶标点与像点之间的对应关系。在对模型的精度和稳定性的评价中,通过采用单因子变量法,避免了复杂的多因素讨论。通过合理的假设和算法优化,减小了计算机求解的时间复杂度和空间复杂度,运算较快而且结果精度较高、鲁棒性好。

参考文献

[1] 仲 琴.基于机器视觉的番茄收获机器人目标定位技术研究[M].镇江:江苏大学出版社,2005.

[2] Jimenez R,Cere R,Pons J L.A Survey of Computer Vision Methods for Locating Fruit on Trees[J].Transactions of the ASAE,

2000,43(6):191121920.

[3] 赵庆鹏,马华东.自适应几何畸变图像矫正方法研究[J].和谐人机环境,2007,46(5):2062213.

[4] David A,Forsyth,Jean https://www.360docs.net/doc/2012329818.html,puter Vision:A Modern Approach[M].北京:电子工业出版社,2004.

[5] G onzalez Rafeal C,Woods Richard E.Digital Image Processing Using MA TLAB[M].北京:电子工业出版社,2005.

[6] 赵录刚,吴成柯.一种基于圆环点的相机定标方法[J].西安电子科技大学学报:自然科学版,2007,34(3):3632367.

231 武 汉 理 工 大 学 学 报 2009年7月

数学建模:数码相机定位

高教社杯全国大学生数学建模竞赛 承诺书 我们仔细阅读了中国大学生数学建模竞赛的竞赛规则. 我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。 我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。 我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反竞赛规则的行为,我们将受到严肃处理。 我们参赛选择的题号是(从A/B/C/D中选择一项填写): 我们的参赛报名号为(如果赛区设置报名号的话): 所属学校(请填写完整的全名): 参赛队员(打印并签名) :1. 2. 3. 指导教师或指导教师组负责人(打印并签名): 日期:年月日赛区评阅编号(由赛区组委会评阅前进行编号):

高教社杯全国大学生数学建模竞赛 编号专用页 赛区评阅编号(由赛区组委会评阅前进行编号): 全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):

数码相机定位 摘要 柯达于1975年开发世界第一部数码相机。由此,数码照相机便家喻户晓起来。数码相机定位在交通监管(电子警察)等方面有广泛的应用。所谓数码相机定位是指用数码相机摄制物体的相片确定物体表面某些特征点的位置。最常用的定位方法是双目定位,即用两部相机来定位。对物体上一个特征点,用两部固定于不同位置的相机摄得物体的像,分别获得该点在两部相机像平面上的坐标。只要知道两部相机精确的相对位置,就可用几何的方法得到该特征点在固定一部相机的坐标系中的坐标,即确定了特征点的位置。于是对双目定位,精确地确定两部相机的相对位置就是关键,这一过程称为系统标定。 标定的一种做法是:在一块平板上画若干个点,同时用这两部相机照相,分别得到这些点在它们像平面上的像点,利用这两组像点的几何关系就可以得到这两部相机的相对位置。然而,无论在物平面或像平面上我们都无法直接得到没有几何尺寸的“点”。实际的做法是在物平面上画若干个圆(称为靶标),它们的圆心就是几何的点了。而它们的像一般会变形,所以必须从靶标上的这些圆的像中把圆心的像精确地找到,标定就可实现。 关键词:针孔成像,坐标变换,图像处理,相机镜头畸变,双目定位 。

基于Matlab的彩色图像分割

用Matlab来分割彩色图像的过程如下: 1)获取图像的RGB颜色信息。通过与用户的交互操作来提示用户输入待处理的彩色图像文件路径; 2)RGB彩色空间到lab彩色空间的转换。通过函数makecform()和applycform()来实现; 3)对ab分量进行Kmean聚类。调用函数kmeans()来实现; 4)显示分割后的各个区域。用三副图像分别来显示各个分割目标,背景用黑色表示。Matlab程序源码 %文件读取 clear; clc; file_name = input('请输入图像文件路径:','s'); I_rgb = imread(file_name); %读取文件数据 figure(); imshow(I_rgb); %显示原图 title('原始图像'); %将彩色图像从RGB转化到lab彩色空间 C = makecform('srgb2lab'); %设置转换格式 I_lab = applycform(I_rgb, C); %进行K-mean聚类将图像分割成3个区域 ab = double(I_lab(:,:,2:3)); %取出lab空间的a分量和b分量 nrows = size(ab,1); ncols = size(ab,2); ab = reshape(ab,nrows*ncols,2); nColors = 3; %分割的区域个数为3 [cluster_idx cluster_center] = kmeans(ab,nColors,'distance','sqEuclidean','Replicates',3); %重复聚类3次 pixel_labels = reshape(cluster_idx,nrows,ncols); figure(); imshow(pixel_labels,[]), title('聚类结果'); %显示分割后的各个区域 segmented_images = cell(1,3); rgb_label = repmat(pixel_labels,[1 1 3]); for k = 1:nColors color = I_rgb; color(rgb_label ~= k) = 0; segmented_images{k} = color;

数码相机定位(优秀论文)

承诺书 我们仔细阅读了中国大学生数学建模竞赛的竞赛规则. 我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。 我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。 我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反竞赛规则的行为,我们将受到严肃处理。 我们参赛选择的题号是(从A/B/C/D中选择一项填写): A 我们的参赛报名号为(如果赛区设置报名号的话): 所属学校(请填写完整的全名): 参赛队员(打印并签名) :1. 2. 3. 指导教师或指导教师组负责人(打印并签名): 日期:年月日赛区评阅编号(由赛区组委会评阅前进行编号):

2008高教社杯全国大学生数学建模竞赛 编号专用页 赛区评阅编号(由赛区组委会评阅前进行编号): 赛区评阅记录(可供赛区评阅时使用):评 阅 人 评 分 备 注 全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):

数码相机定位 摘要 本文对双目定位的具体模型和方法进行了研究,分别给出了针孔成像模型、椭圆拟合模型等并对其进行研究。这种方法可以较好的解决由于像坐标存在误差,而引起靶标坐标能否精确计算的问题。我们用此模型,比较准确的还原出靶标上的点。给定靶标上的点,我们可以对应的求出像面上的点,即得到了一个像面上的点与靶标上的点的一一对应的较准确的关系。 我们首先要确定出像面上椭圆的中心坐标,因此我们采用了几何方法,建立合理的坐标,根据椭圆最高点和最低点的连线、最左与最右点的连线必交与椭圆中心的原理,创造性的利用了Photoshop软件直接将所给的图形以像素为单位进行坐标化处理,再读出各个点的坐标,这样椭圆中心即可确定下来,靶标上圆的圆心在该相机像平面的像坐标也就确定了。 由于本文采用的是一个优化模型,求出的是其近似解,与实际的原坐标位置有一定的偏移,所以我们需检验其精度,采用两种方法检验:1、通过靶标面和像平面中存在的几何关系建立一定的方程,从而去验证上述模型的精度;2、如果直接用图像中图形边界做切线,精度将会变得非常低,会造成很大的误差,所以在本模型中,先要利用所给图像中图形的边界(在1中提取)拟合出椭圆的方程。通过MATLAB、最小二乘法等计算出像平面椭圆圆心的坐标,结果与实际进行比较,进而检验模型的精度和稳定性。 对于由两部相机摄的像确定两部相机的相对位置及方向,我们通过建立方程并求解,从而得到两部相机之间的位置关系。该方法可以较好的处理误差所引起的方程不相容问题。 关键词:针孔成像模型几何模型椭圆拟合Photoshop

基于MATLAB的图像分割方法及应用

安徽财经大学 (《图像处理》课程论文) 题目:图像分割算法研究——基于分水岭分割法的彩色图像分割学院:管理科学与工程学院 专业:电子信息工程 姓名:万多荃 学号:20123712 电话: 任课教师:许晓丽 论文成绩: 2015年10月

目录 摘要 图像分割技术是非常重要的图像处理技术之一,无语是在理论研究还是在实际应用中人们都非常的重视。图像分割有许多的种类和方式,一些分割运算能够直接应用于任何图像,而另外一些却只适用于特别种类的图像。图像分割技术是从图像处理技术,再到后期的图像分析的关键步骤,图像分割结果的好坏,可以说对图像的理解有直接影响。

本文根据图像分割原理及人眼视觉的基本理论,研究图像的彩色模型及图像分割的常用方法,比较各方法的特点,并选择合适的方法对图像进行分割。本文采用MATLAB软件对图像进行彩色坐标变换及阈值分割,计算简单,具有较高的运行效率,分割的结果是使图像更符合人眼的视觉特性,获得比较好的效果。 关键字:图像处理;图像分割;人类视觉;MATLAB 1.前言 1.1图像分割技术 图像分割技术是非常重要的图像处理技术之一,无语是在理论研究还是在实际应用中人们都非常的重视。图像分割有许多的种类和方式,一些分割运算能够直接应用于任何图像,而另外一些却只适用于特别种类的图像。图像分割技术是从图像处理技术,再到后期的图像分析的关键步骤,图像分割结果的好坏,可以说对图像的理解有直接影响。 图像数据的模糊和噪声的干扰是分割问题的两大难题。到目前为止,还没有一个完美的图像分割方法,可以根据人的意愿精确地分割任何一种图像。现实图像中景物情况各种不同,具体问题需具体分析,按照实际情况选择得当的方法。分割成果的好坏或正确与否,到现在为止,尚无一个统一的评价和判断标准,分割的好坏务必从分割的效果和现实应用的场合来判断。然而,在人类研究图像的历史长河中,仍然积累了许多经典的图像分割方法。固然这些分割方法不可以适应全部种类的图像分割,可是这些方法却是图像分割方法进一步发展的根基。实际上,当代一些分割算法恰巧是从经典的图像分割方法中产生出来的。图像分割法大致可以分为三个种:边缘检测法,阈值分割法和基于区域的图像分割法。 2研究目的 视觉是人类最高级的感知器官,所以图像在人类感知中承担着非常重要的角色,这是毋庸置疑的。 本文的主要研究目的是对图像的分割方法进行研究,选择适合本论文的设计方法,然后通过对图像的分割,以达到人眼的最佳视觉效果。 本课题主要是通过对人眼的视觉系统研究,然后选择与人眼视觉系统密切相关的颜色模型进行颜色空间模型之间的相互转换,再对图像分割方法进行比较选择合适的分割方法,通过MATLAB平台实现彩色图像分割,最后对分割后的图像进行比较来获得到最佳的视觉效果。

部分图像分割的方法(matlab)

部分图像分割的方法(matlab)

大津法: function y1=OTSU(image,th_set) image=imread('color1.bmp'); gray=rgb2gray(image);%原图像的灰度图 low_high=stretchlim(gray);%增强图像,似乎也不是一定需要gray=imadjust(gray,low_high,[]); % subplot(224);imshow(gray);title('after adjust'); count=imhist(gray); [r,t]=size(gray); n=r*t; l=256; count=count/n;%各级灰度出现的概率 for i=2:l if count(i)~=0 st=i-1; break end end %以上循环语句实现寻找出现概率不为0的最小灰度值 for i=l:-1:1 if count(i)~=0; nd=i-1; break end end %实现找出出现概率不为0的最大灰度值 f=count(st+1:nd+1); p=st;q=nd-st;%p和分别是灰度的起始和结束值 u=0; for i=1:q; u=u+f(i)*(p+i-1); ua(i)=u; end

程序二: clc; clear; cd 'D:\My Documents\MATLAB' time = now; I = imread('qr4.bmp'); figure(1),imshow(I),title('p1_1.bmp'); % show the picture I2 = rgb2gray(I); figure(2),imshow(I2),title('I2.bmp'); %?D?μ??2¨ J = medfilt2(I2); figure(3),imshow(J); imwrite(J,'J.bmp'); [M N] = size(J); J1 = J(1:M/2,1:fix(N/2)); J2 = J(1:M/2,fix(N/2)+1:N); J3 = J(M/2+1:M, 1:fix( N/2)); J4 = J(M/2+1:M, fix(N/2)+1:N); % figure(4), img = J1; T1 = test_gray2bw( img ); % figure(5), img = J2; T2 = test_gray2bw( img ); % figure(6), img = J3; T3 = test_gray2bw( img ); % figure(7), img = J4; T4 = test_gray2bw( img ); T = [T1,T2;T3,T4]; figure,imshow(T) % T1 = edge(T,'sobel'); % figure,imshow(T1); % BW = edge(T,'sobel'); % f igure,imshow(BW); function [bw_img] = test_gray2bw( img ) %大津法 [row_img col_img ] = size( img ) all_pix = row_img * col_img % get probability of each pixel(????). count_pix = zeros(1,256) % pro_pix = [] for i = 1 : 1 : row_img for j = 1 : 1 : col_img count_pix(1,img(i,j)+1) = count_pix(1,img(i,j)+1) + 1 %í3??′?êy end en d pro_pix = count_pix / all_pix % choose k value; max_kesi = -1 T = 0 for k = 1 : 1 : while( i <= k ) wa = wa + pro_pix(1,i+1) %?°k??i£?????????μ??ò?è???ê£????êoí ua = ua + i * pro_pix(1,i+1) i = i + 1 end

推荐-数学建模优秀数码相机定位的数学模型 精品 精品

数码相机定位的数学模型 摘要 随着数码相机定位在各领域的广泛应用,对相关问题《机器视觉》的研究也成为热点。因此建立一个精度较高,稳定性好的数码相机定位的数学模型,具有很好的现实意义。 问题1要求给出确定靶标上圆的圆心在给定相机像平面的像坐标的算法,问题2利用问题1的模型对给定数据求解。为此,首先建立了四个空间直角坐标系,在MATLAB中把图3的数字信息提取出来,主要是五个椭圆的边缘点的信息;同时为了便于运算,通过坐标变换将计算机图像坐标变换为图像坐标;并用提取的图像边界坐标拟合出5个椭圆的方程,利用“曲线切线的投影仍与曲线的投影相切,而且切点的投影仍为投影的切点”这一引理,提取出靶标上圆及其像上的公切点的坐标作为特征点,利用RAC两步法标定过程和最小二乘法建立了计算世界坐标系到相机坐标系的旋转变换矩阵R和平移向量T及径向畸变系数k的算法。利用16个公切点作为特征点,通过Matalb编程求得靶标上圆的圆心在文中给定相机像平面的五个坐标(单位:mm):A(-49.7132, 51.1289 417.1958),B(-23.3475, 49.1539 417.1958),C(33.8194, 44.8716, 417.1958),D(18.8173,-31.5798, 417.1958),E(-59.7830, -31.1754, 417.1958)。 问题3的解决分为两步:一是通过对模型计算出的焦距及畸变系数及上面五个坐标值的分析得出模型的精度较高的结论;二是采用改变特征点数的方法或利用“A,B,C三个标靶的中心的像应在一条直线上”验证模型的稳定性。问题4采用二目立体视觉模型确定了给出两部固定相机相对位置的数学模型和方法。 本文建立的算法可操作性强,精度较高,稳定性好,对解决类似问题的计算有一定的推广价值。 关键词:拟合椭圆特征点提取 RAC两步法坐标旋转矩阵公切点

部分图像分割的方法(matlab)

大津法: function y1=OTSU(image,th_set) image=imread('color1.bmp'); gray=rgb2gray(image);%原图像的灰度图 low_high=stretchlim(gray);%增强图像,似乎也不是一定需要gray=imadjust(gray,low_high,[]); % subplot(224);imshow(gray);title('after adjust'); count=imhist(gray); [r,t]=size(gray); n=r*t; l=256; count=count/n;%各级灰度出现的概率 for i=2:l if count(i)~=0 st=i-1; break end end %以上循环语句实现寻找出现概率不为0的最小灰度值 for i=l:-1:1 if count(i)~=0; nd=i-1; break end end %实现找出出现概率不为0的最大灰度值 f=count(st+1:nd+1); p=st;q=nd-st;%p和分别是灰度的起始和结束值 u=0; for i=1:q; u=u+f(i)*(p+i-1); ua(i)=u; end

%计算图像的平均灰度值 for i=1:q; w(i)=sum(f(1:i)); end %计算出选择不同k的时候,A区域的概率 d=(u*w-ua).^2./(w.*(1-w));%求出不同k值时类间方差[y,tp]=max(d);%求出最大方差对应的灰度级 th=tp+p; if thth) y1(i,j)=x1(i,j); else y1(i,j)=0; end end end %上面一段代码实现分割 % figure,imshow(y1); % title('灰度门限分割的图像');

数学建模-数码相机(高一)

数码相机定位的几何方法 摘要 本文在数码相机定位问题中,首先建立起4个空间坐标系,并给出它们之间的影射关系,把空间中的三维世界坐标通过平面投影成像过程转换为二维坐标。 对于第一问,根据观测到的靶标的像C B A ''',,三点的中心在同一直线上,利用旋转变换和平移变换以及仿射变换,建立由世界坐标系到像平面坐标系的影射关系。利用坐标变换,根据已知参考坐标系坐标和图像坐标系坐标的控制点来确定相机的光学和几何参数以及相机相对坐标系的位置和方向变换,得出由物平面到像平面的函数关系式。 对于第二问,由给出的靶标及其像,通过刻度尺量出靶标的像的坐标,利用分辨率和测量值计算出像平面大小的比例系数k ,利用第一问的表达式算出靶标上圆的圆心在像平面上的像坐标。 第三问中为了纠正相机拍摄的几何畸变,本文采用仿射变换来检验模型的准确度。建立了平面直角坐标变换下的仿射变换,即两直角坐标系w w Y X -和u -v 坐标系,利用不在同一直线上的E C A E C A ''',,,,,六点坐标代入建立的仿射变换方程组中,就可得到各点在u -v 坐标系中的预测值,通过与观测值的对比计算中,即可对所建立的模型进行精度和稳定性的讨论。 第四问中,给出了两种求解方法。方法一是假定两部相机是平行于物平面放置,经过空间坐标转化,根据几何比例关系得出结论。方法二则建立空间三维直角坐标系,给出“正像平面”的法向量和“反像平面”的平面向量,且不考虑镜头点的位置改变,从对称及非对称两不同方法分别考虑两相机的相对位置,对任取靶标的像的两点及其正像平面的中心点,分别求得正像平面与直线的交点,利用相似三角形性质、交点坐标、像距从而来确定出两部固定相机的相对位置。两方法都利用了数形结合,比较清晰的给出表达式。 关键词:相机标定 世界坐标系 小孔成像 仿射变换

基于Matlab的彩色图像分割

3 Matlab编程实现 3.1 Matlab编程过程 用Matlab来分割彩色图像的过程如下: 1)获取图像的RGB颜色信息。通过与用户的交互操作来提示用户输入待处理的彩色图像文件路径; 2)RGB彩色空间到lab彩色空间的转换。通过函数makecform()和applycform()来实现; 3)对ab分量进行Kmean聚类。调用函数kmeans()来实现; 4)显示分割后的各个区域。用三副图像分别来显示各个分割目标,背景用黑色表示。3.2 Matlab程序源码 %文件读取 clear; clc; file_name = input('请输入图像文件路径:','s'); I_rgb = imread(file_name); %读取文件数据 figure(); imshow(I_rgb); %显示原图 title('原始图像'); %将彩色图像从RGB转化到lab彩色空间 C = makecform('srgb2lab'); %设置转换格式 I_lab = applycform(I_rgb, C); %进行K-mean聚类将图像分割成3个区域 ab = double(I_lab(:,:,2:3)); %取出lab空间的a分量和b分量 nrows = size(ab,1); ncols = size(ab,2); ab = reshape(ab,nrows*ncols,2); nColors = 3; %分割的区域个数为3 [cluster_idx cluster_center] = kmeans(ab,nColors,'distance','sqEuclidean','Replicates',3); %重复聚类3次 pixel_labels = reshape(cluster_idx,nrows,ncols); figure(); imshow(pixel_labels,[]), title('聚类结果'); %显示分割后的各个区域 segmented_images = cell(1,3); rgb_label = repmat(pixel_labels,[1 1 3]); for k = 1:nColors

数码相机数学建模

2008高教社杯全国大学生数学建模竞赛 承诺书 我们仔细阅读了中国大学生数学建模竞赛的竞赛规则. 我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上 咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。 我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的资 料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文 献中明确列出。 我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反竞赛规则 的行为,我们将受到严肃处理。 我们参赛选择的题号是(从A/B/C/D中选择一项填写): A 我们的参赛报名号为(如果赛区设置报名号的话): 1324615 所属学校(请填写完整的全名):中国地质大学(武汉) 参赛队员 (打印并签名) :1. 王飞 2. 李丁 3. 代永力 指导教师或指导教师组负责人 (打印并签名):付丽华 日期: 2008 年 9 月22日 赛区评阅编号(由赛区组委会评阅前进行编号):

2008高教社杯全国大学生数学建模竞赛 编号专用页 赛区评阅编号(由赛区组委会评阅前进行编号): 全国评阅编号(由全国组委会评阅前进行编号):

数码相机定位 摘 要 相机定位是计算机视觉领域里从二维图像获取三维信息的基本要求,是完成许多视觉工作必不可少的步骤。 题目利用由五个圆组成的靶标模板(图2)对相机进行标定。对于给出的相机拍摄的靶标的像(图3),本文对其进行了预处理:首先应用MATLAB 软件对图3进行去噪,然后利用自行设计的算法(扫描法)提取去噪后图形的边缘(图8)。事实上,标定就是找到空间坐标系和像平面坐标系之间的相互关系。而这是由相机成像的几何模型决定的,其成像参数包括相机内部几何和光学特性(内部参数),以及相机世界坐标系的三维位置和方向(外部参数)。求解相机内外参数是解决问题的关键。 本文考虑了理想的情况,即直线的投影仍是直线,以及交点的投影仍然是像的交点。利用图2中A 、B 、C 、D 、E 两两圆的外公切线的切点与图3中像的外公切线的切点相对应,通过最小二乘法求出该相机的内、外参数。然后,利用相机成像原理,将图2中圆心的坐标c A 、c B 、c C 、c D 、c E 和相机内外参数代入,即可得到靶标上圆的圆心在该相机像平面的像坐标'c A 、'c B 、'c C 、'c D 、'c E (见表2)。 为了验证该模型,本文利用留一法,用四个圆(共有三组:A 、B 、D 、E ;B 、C 、D 、E ;A 、C 、D 、E )的切点与对应像点求相机内外参数,剩下的一个圆用于做检验。以第一组为例,具体过程是:根据A 、B 、D 、E 算出内外参数,然后求出C 圆圆心的像的坐标''c C ,并与'c A 、'c B 所确定的直线的距离来检验方法的精度和稳定性。结果显示(见本文13-14页),本文所用方法精度较高,稳定性较好。 双目标定时,将双目系统的坐标系建立在左相机上,把右相机的坐标系相对于其的旋转和平移参数利用最小二乘法求出,从而可以得到两部相机的相对位置。 关键词:标定;内、外参数;深度优先搜索;最小二乘法

车牌图像分割matlab代码

图像分割matlab代码 作者:佚名发布时间:2010-1-1 阅读次数:498 字体大小: 【小】【中】【大】 % This is a program for extracting objects from an image. Written for vehicle number plate segmentation and extraction % Authors : Jeny Rajan, Chandrashekar P S % U can use attached test image for testing % input - give the image file name as input. eg :- car3.jpg clc; clear all; k=input('Enter the file name','s'); % input image; color image im=imread(k); im1=rgb2gray(im); im1=medfilt2(im1,[3 3]); %Median filtering the image to remove noise% BW = edge(im1,'sobel'); %finding edges [imx,imy]=size(BW); msk=[0 0 0 0 0; 0 1 1 1 0; 0 1 1 1 0; 0 1 1 1 0; 0 0 0 0 0;]; B=conv2(double(BW),double(msk)); %Smoothing image to reduce the number of connected components L = bwlabel(B,8);% Calculating connected components mx=max(max(L)) % There will be mx connected components.Here U can give a value between 1 and mx for L or in a loop you can extract all connected components % If you are using the attached car image, by giving 17,18,19,22,27,28 to L you can extract the number plate completely. [r,c] = find(L==17); rc = [r c]; [sx sy]=size(rc);

数学建模 数码相机定位

一问题的提出 1.1背景 数码相机定位在交通监管(电子警察)等方面有广泛的应用。所谓数码相机定位是指用数码相机摄制物体的相片确定物体表面某些特征点的位置。最常用的定位方法是双目定位,即用两部相机来定位。对物体上一个特征点,用两部固定于不同位置的相机摄得物体的像,分别获得该点在两部相机像平面上的坐标。只要知道两部相机精确的相对位置,就可用几何的方法得到该特征点在固定一部相机的坐标系中的坐标,即确定了特征点的位置。于是对双目定位,精确地确定两部相机的相对位置就是关键,这一过程称为系统标定。 标定的一种做法是:在一块平板上画若 干个点,同时用这两部相机照相,分别得到 这些点在它们像平面上的像点,利用这两组 像点的几何关系就可以得到这两部相机的 相对位置。然而,无论在物平面或像平面上 我们都无法直接得到没有几何尺寸的“点”。 实际的做法是在物平面上画若干个圆(称为 靶标),它们的圆心就是几何的点了。而它 们的像一般会变形,如图1所示,所以必须 从靶标上的这些圆的像中把圆心的像精确 地找到,标定就可实现。图 1 靶标上圆的像 有人设计靶标如下,取1个边长为100mm的正方形,分别以四个顶点(对应为A、C、D、E)为圆心,12mm为半径作圆。以AC边上距离A点30mm处的B为圆心,12mm为半径作圆,如图2所示。 用一位置固定的数码相机摄得其像,如图3所示。

图 2 靶标示意图图3 靶标的像 1.2问题 (1)建立数学模型和算法以确定靶标上圆的圆心在该相机像平面的像坐标, 这里坐标系原点取在该相机的光学中心,x-y平面平行于像平面; (2)对由图2、图3分别给出的靶标及其像,计算靶标上圆的圆心在像平面上的像坐标, 该相机的像距(即光学中心到像平面的距离)是1577个像素单位(1毫米约为3.78个像素单位),相机分辨率为1024×768; (3)设计一种方法检验你们的模型,并对方法的精度和稳定性进行讨论;(4)建立用此靶标给出两部固定相机相对位置的数学模型和方法。 二问题的假设 1.考虑光的衍射,色散,只考虑反射和折射; 2.假设所有场景中感兴趣的点都在镜头前面; 3.将相机简化为一个小孔成像机构,对于产生的相差,以及相机对像平面成像的调整作用不予考虑; 4.像平面是由一个个有大小的像素点组成,是一个不连续的点空间,而几何定义大都是在连续空间内定义的,这里假定,在几何推理中,像平面是连续的面,也即每个象素点除了表示坐标外,不再具有实际的大小; 5.为了在离散空间中求解,在解答过程中对相切、相割的含义做了一些调整,具体论述见正文; 6.对于题中随给相机中的几何关系有如下描述:焦点,透镜中心,像平面中点三点共 三符号说明 四问题分析 问题涉及的是数码相机的定位问题,问题出现在双目定位的背景下,要解决的问题是如何实现物体表面某些特征点在物平面和像平面之间的坐标转换,其中如何在像平面中找到发生变形的靶标(圆)像的圆心是需要解决的核心问题。 4.1 基本思路 题目中给出了已经得到的靶标的像和一些可测量的参数,如相机的像距,分辨率及靶标圆的半径和各圆之间的相对位置等。精确确定两部相机的相对位置是最终目的;实现物体表面某些特征点在物平面和像平面之间的坐标转换,是解决问题的基础;而像的变形决定了找到圆心在像上的投影是问题的核心也是难点。我们考虑先找出实现物体表面某些特征点在物平面和像平面之间的坐标转换的方法,在此基础上找到靶标圆心在像平面上的圆心的具体位置,然后通过坐标转换,把空间点从图像中恢复出来,最后根据两次恢复中求出的空间点位置的不一致关系,通过坐标系转换推出两部相机的相对位置。 4.2 具体分析 问题1需要确定靶标上圆的圆心在相机像平面的像坐标。有两种方法可以考虑实现,第一是利用物与像之间某些不变的相对位置关系找到对应与圆心的像点;另一种方法就是借助计算机图形处理中的霍夫变换和聚类算法在一定模型假设基础上求解。 问题2主要是模型的求解。根据问题一中得到的模型和算法,具体的编制程序进

基于MATLAB的图像分割算法研究毕业设计

基于MA TLAB的图像分割算法研究 基于MATLAB的图像分割算法研究 摘要 本文从原理和应用效果上对经典的图像分割方法如边缘检测、阈值分割技术和区域增长等进行了分析。对梯度算法中的Roberts算子、Sobel算子、Prewitt算子、拉普拉斯(Laplacian)算子、LoG(Laplacian-Gauss)算子、坎尼(Canny)算子的分割步骤、分割方式、分割准则相互比较可以看出根据坎尼(Canny)边缘算子的3个准则得出的边缘检测结果最满意。而阈值分割技术的关键在于阈值的确定,只有阈值确定好了才能有效的划分物体与背景,但这种方法只对于那些灰度分布明显,背景与物体差别大的图像的分割效果才明显。区域增长的基本思想是将具有相似性质的像素集合起来构成新区域。与此同时本文还分析了图像分割技术研究的方向。 关键词:图像处理图像分割 Abstract This article analyses the application effect to the classics image segmentation method like the edge examination, territory value division technology, and the region growth and so on.For comparing the Roberts operator, Sobel operator, Prewitt operator, the operator of Laplacian and the operator of LoG(Laplacian-Gauss),Canny operator in gradient algorithm,the step, the way and the standard of the image segmentation,we can find out the three standard of Canny edge operator the edge detection result of reaching most satisfy. And the key point of threshold segmentation lie in fixing the threshold value, it is good to have only threshold value to determine it then can be effective to divide object and background,but this kind of method is good to those gray scales,the big difference image effect between the background and obiect. The basic idea of area is to form the new region from similar nature.And also, this paper analyses the research direction of image segmentation technology at the same time. Key words: image processing image segmentation operator

基于MATLAB的图像阈值分割技术

基于MATLAB 的图像阈值分割技术 摘要:本文主要针对图像阈值分割做一个基于MATLAB 的分析。通过双峰法,迭代法以及OUTS 法三种算法来实现图像阈值分割,并且就这三种算法做了一定的分析和比较,在加椒盐的图片上同时进行三种实验,做出比较,最终得出实践结论。 关键词:图像分割 MATLAB 阈值分割 算法 引言:图像分割是图像处理与计算机视觉领域低层次视觉中最为基础和重要的领域之一,它是对图像进行视觉分析和模式识别的基本前提.同时它也是一个经典难题,到目前为止既不存在一种通用的图像分割方法,也不存在一种判断是否分割成功的客观标准,图像阈值分割即是其中的一种方法。 阈值分割技术因其实现简单、计算量小、性能较稳定而成为图像分割中最基本和应用最广泛的分割技术,已被应用于很多的领域,在很多图像处理系统中都是必不可少的一个环节。 1、阈值分割思想和原理 若图像中目标和背景具有不同的灰度集合:目标灰度集合与背景灰度集合,且两个灰度集合可用一个灰度级阈值T 进行分割。这样就可以用阈值分割灰度级的方法在图像中分割出目标区域与背景区域,这种方法称为灰度阈值分割方法。 在物体与背景有较强的对比度的图像中,此种方法应用特别有效。比如说物体部灰度分布均匀一致,背景在另一个灰度级上也分布均匀,这时利用阈值可以将目标与背景分割得很好。如果目标和背景的差别是某些其他特征而不是灰度特征时,那么先将这些特征差别转化为灰度差别,然后再应用阈值分割方法进行处理,这样使用阈值分割技术也可能是有效的 设图像为f(x,y),其灰度集围是[0,L],在0和L 之间选择一个合适的灰度阈值T ,则图像分割方法可由下式描述: 这样得到的g(x,y)是一幅二值图像。 (一)原理研究 图像阈值分割的方法有很多,在这里就其中三种方法进行研究,双峰法,迭代法,以及OUTS 法。 方法一:双峰法 方法原理: T y x f T y x f y x g ≥<),(),(10){,(

数码相机的定位数学建模Word版

数码相机的定位 摘要 数码相机的定位问题,实际就是关于对图的处理,射影关系的确定以及多种坐标系之间相互转化的综合考察,该题一共给出四个问题,前三个问题是关于数码相机双目定位原理的解释与求算,在已知原靶标的基础之上,我们能够利用图像之间的关系,实际点与射影点的相互关系来定位圆心,前三问分别是对该问题的解释,求算以及检验。 对于前三问,我们首先对图形进行处理,对给出的图像进行坐标化的处理可以让我们的计算由几何图形求解变成代数化处理,方便我们利用计算机辅助,而后的引入两个模型对圆心进行定位和计算,并利用共线和交比两个手段进行误差检验,。 模型一:我们利用射影后保持切线不变的性质来求解圆心坐标:对处理后的图像进行椭圆的多次拟合我们能够得到五个类椭圆的系数,随后我们通过切线的性质,找到任意两个椭圆的两组外公切点,通过外公切点的连线,没我们能够定位类椭圆的圆心坐标。 模型二:我们将靶标点成像看作是靶标向像点的映射,那么类椭圆的最上最下最左最右点也将是靶标上圆的四个极位点,他们的连线是靶标中圆的圆心,那么在类椭圆中,最上最下,最左最右四个点由于射影过程中上下左右位置并未改变,他们的连线同样可以确定圆心。同时由于淡出求解映射点的方式误差相对大一些,我们引入对畸变的修正模型,对畸变进行修正,通过交比不变的性质对畸变系数进行求解,得到准确的结果。 在我们得到圆心坐标后,我们分别考察了ABC的共线情况来计算两个模型的误差,同时再利用消影点的只是,考察了ABCM的交比情况,得到实际理想状态下的交比为10:7,与我们的计算情况误差极小,确保了模型的准确性。 在解决了单个相机的定位问题,我们在第四问中解决两个相机的相互位置关系问题,我们首先推导了世界坐标系,相机坐标系以及像点坐标系的转化关系作为基础,再通过两个相机坐标系与世界坐标系的关系,找到单个坐标系向世界坐标系的转化矩阵,分别为旋转变化系数矩阵和平移变化系数矩阵,在定位两个坐标系分别于世界坐标系的转换方式后,我们最后在世界坐标系下找到两个相机坐标系的相对关系,通过高等代数的方法求解出两个相对坐标系的夹角。 关键词:公切线模型映射点模型畸变修正转化矩阵系统标定

MATLAB简介+图像轮廓线提取+图像分割技术

MATLAB 软件使用简介 MATLAB 是一个功能强大的数学软件, 它不但可以解决数学中的数值计算问题, 还可以解决符号演算问题, 并且能够方便地绘出各种函数图形。MATLAB自1984年由美国的MathWorks公司推向市场,现已成为国际最优秀的科技应用软件之一。 一、MATLAB 的工作界面 启动MATLAB后, 出现MATLAB命令窗口,空白区域是MATLAB 的工作区, 在此可输入和执行命令。 二、 MATLAB 操作的注意事项 ●在工作区输入MATLAB命令后, 按下Enter键才能执行命令。 ●MATLAB 是区分字母大小写的。 ●如果不想显示结果,只要在所输入命令的后面加上一个分号“;”即可。 如:x= 2 + 3↙ x=5 x = 2 + 3 ; ↙不显示结果5 ●如果一个表达式一行写不下,可以在行尾键入“...”来换行。 如:q=5^6+sin(pi)+exp(3)+(1+2+3+4+5) ... -5+1/2-567 ●命令行与M文件中的百分号“%”标明注释。 三、MATLAB的变量与表达式 ●MATLAB的变量名 MATLAB的变量名是用一个字母打头,后面最多跟19个字母或数字。应该注意不要用MATLAB中的内部函数或命令名作为变量名。列出当前工作空间中的变量命令为: who 将内存中的当前变量以简单形式列出; whos 列出当前内存变量的名称、大小、类型等信息;

clear 清除内存中的所有变量与函数。 ● MATLAB 常用的预定义变量 ans :保存计算结果的缺省变量;Inf 或inf :无穷大; i 或j pi :圆周率π。 ● MATLAB 的运算符 数学运算符:+,-,*, \(左除), / (右除) , ^ (乘幂) 关系运算符:<, >, <=, >=, = =(等于), ~= (不等于) 逻辑运算符:&(逻辑与), |( 逻辑或), ~( 逻辑非) ● MATLAB 的表达式及语句 表达式由运算符、函数、变量名和数字组成的式子。MATLAB 语句由变量、表达式及MATLAB 命令组成,用户输入的语句由MATLAB 系统解释运行。MATLAB 语句的2种最常见的形式为: 形式1:表达式 形式2:变量=表达式 在第一种形式中,表达式运算后产生的结果如果为数值类型,系统自动赋值给变量ans ,并显示在屏幕上。 例1:用两种形式计算3 6sin 5e ++π算术运算结果。 解:形式1: 5^6+sin(pi)+exp(3) ↙ ans = 1.5645e+004 形式2: a=5^6+sin(pi)+exp(3) ↙ a = 1.5645e+004 例2:已知矩阵??????=??????=2211,2121B A ,对它们做简单的关系与逻辑运算 解:A=[1,2;1,2]; ↙ B=[1,1;2,2]; ↙ C=(A

相关文档
最新文档