39
学术出版,国际教著,国际期刊,SCI,SSCI,EI,SCOPUS,A&HCI等高端学术咨询
来源:职称驿站所属分类:物理论文 发布时间:2015-03-14浏览:32次
摘要:传统之摄影测量是作业在平面图像上之,但平面图像不够直观,这就给测量工作带来了很多不便,而通过红绿立体影像技术,则可以直观、准确、方便、舒适地开展测图工作。利用红绿立体影像技术来实现地形数字像对之三维可视化是一个具有研究价值或意义之课题,研究成果将直接应用于实际生产作业中。本文主要研究了红绿立体影像之制作原理与方法,其中包括了立体视觉之原理,自动视差消除之方法,红绿影像之制作及立体影像生成之方法。
关键词:科技论文,摄影测量,红绿立体影像,立体显示,视差消除
一、数字摄影测量技术之发展
数字摄影测量是基于数字影像与摄影测量之基本原理,应用计算机技术、数字影像处理、影像匹配、模式识别等多学科之理论与方法,提取所摄对象用数字方式表达之几何与物理信息之摄影测量学之分支学科。数字摄影测量与模拟、解析摄影测量之最大区别在于:它处理之原始信息不仅可以是像片,更主要之是数字影像或数字化影像;它最终是以计算机视觉代替人眼之立体测量;其产品是数字化形式之。数字摄影测量与传统之摄影测量技术相比,在测绘过程之数字化、自动化方面表现出了巨大优势,代表着当代摄影测量发展之方向。但因量测用大像幅数字相机尚未普及,故数字影像大多通过对光学影像之数字化获取,这使目前数字摄影测量之研究与应用集中在航测领域。显然,数字摄影测量技术也将给近景摄影测量之发展带来新之机遇,尤其在实时测量、自动控制、自动绘图方面更为突出。
二、立体显示技术简介
如果人之眼睛可以分别看到一个物体在不同位置拍摄之像片,由于视差之存在,就会产生立体视觉。红绿立体影像就是通过红绿眼镜,分别让人之左眼与右眼看到偏红与偏绿两张像片,从而产生立体视觉。
三、红绿立体影像生成方法研究
(一)三维视觉原理与视差实时消除方法研究
1.人体生理三维视觉之原理
根据研究,我们人类之眼睛在观察一个三维物体时,由于两眼水平分开在两个不同之位置上,所观察到之物体图像是不同之,它们之间存在着一个像差,由于这个像差之存在,通过人类之大脑,我们可以感到一个三维世界之深度立体变化,这就是所谓之立体视觉原理。
据立体视觉原理,如果我们能够样我们之左右眼分别看到两幅在不同位置拍摄之图像,我们应该可以从这两幅图像感受到一个立体之三维空间。
红绿立体影像就是使到人之左眼与右眼分别看到一个物体之在不同位置拍摄之图像,以产生立体视觉。
红绿立体影像之基本原理就是使到左片与右片分别进行变换,用户带上红绿(本文以左红右绿为标准)眼镜后,左右眼分别只能看到左片与右片,从而产生立体视觉。
2.上下视差消除方法研究
仅仅使到左右眼分别看到不同之侧面之影像并不能使人看到立体影像。要产生立体视觉,还必须消视差,但每一点之视差都不相同,所以我们以除视野中央一点(即窗口之中心点)为标准,把这点之视差消除。计算机在显示左右影像时,左右影像之初始位置是完全重叠之,需要以左影像(或右影像)为固定不变,对右影像(或左影像)进行位移,以消除中心点之视差。移动之距离大小,就是需要求取之视差。
视差之计算,就是已知道连续像对之相对定向元素及内、外方位元素,求取窗口中心点位于左右片之两同名像点之坐标差。
要计算视差,首先必须读取内方位元素与左右像片之外方位元素。
本文所使用之数据文件是Access数据库类型之。其中,内方位元素是存放于“参数。mdb”文件之“相机参数”表中,3个内方位元素分别存放于列“XO” 、“YO” 、“ZO”下;外方位元素是存放在“外方位。mdb”文件之“X”表中,六个外方位元素分别存放于列“xs” 、“ys” 、“zs” 、“phi” 、“ow” 、“k” 、下 ,左右片之外方位元素分别对应行“s0001.JPG”与 “s0002.JPG” 。
读取内方位元素:
Set db = OpenDatabase(App.Path + "参数。mdb") '文件与程序在同一文件夹
Set rs = db.OpenRecordset("相机参数")
If rs.RecordCount > 0 Then
mmm = rs!xo
nnn = rs!yo
ppp = rs!zo
Else: MsgBox "请先给出初值", vbInformation, "系统提示"
End If
x00 = CDbl(mmm)
z00 = CDbl(nnn)
f = CDbl(ppp)
读取外方元素:
Set db = OpenDatabase(App.Path + "外方位。mdb")
sqlstr = "select * from x where picname='s0001.JPG'" '读取右片时把's0001.JPG'改为's0002.JPG'
Set rs = db.OpenRecordset(sqlstr)
XS1 = CDbl(rs![Xs])
YS1 = CDbl(rs![Ys])
ZS1 = CDbl(rs![Zs])
fi1 = CDbl(rs![phi])
w1 = CDbl(rs![ow])
k1 = CDbl(rs![k])
然后,还必须确定旋转矩阵R。
《摄影测量学》中有关于旋转矩阵之论述,并且给出了旋转矩阵: ,但是此矩阵只适合于航拍像片。
由图2-1、2-2可以看出,航空摄影坐标系中之Y轴,恰好是近景摄影坐标系中之Z轴,航空摄影坐标系中之Z轴恰好是近景摄影坐标系中之Y轴。因为本文是以近景影像为对象之,所以按照航空摄影坐标系与近景摄影坐标系之异同,本文选用了另一旋转矩阵:
当对象是航拍像片时,应该使用式2-1。
下面将计算上下视差:
假设a之 像平面坐标系坐标为, a?之像平面坐标系坐标为,对应之地面模型点为 A,A之物方坐标系坐标为 ,由于A之高程是未知之,所以可假设为平均高程,平均高程可由各控制点之高程平均值求得。
由共线方程 与空间坐标转换公式 可得:
,由式2-5中之第三式可得: ,代入式2-5之第一与第二式,可得: (注意,此处使用之是左片之旋转矩阵)。
然后再根据中心投影之构像方程:
,可得到此时右片同名像点所处之像平面坐标系位置(注意,此处使用之是右片之旋转矩阵)。所以若要使得两同名像点重合,右片需移动、,其中: 。
3.上下视差之实时自动消除
如图2-4所示,大之矩形框代表要显示之图像,里面小之矩形框代表图片框。程序在显示图像时,先在窗口中绘制一个图片框,然后在图片框中显示图像,图片框之大小与窗口同样。由于图像比图片框大,所以显示出来之只是图像之一部分,如要观看图像之其余部分,就要拖动图像,使要观看之部分位于图片框中。
当拖动图片时,窗体之位置时不变之,窗体之中心也是不变之,但位于窗体中心之左影像之像点是不一样之(拖动时,左右影像是一起拖动之,但计算视差是以左影像为标准之)。为了实现对视差之自动消除,必须实时地计算每次拖动后位于窗体中心之左影像之像点之像平面坐标系坐标。
设该点之像平面坐标系(以左影像中心像点为原点)坐标为(x1,y1)则:
x1 = 窗口宽度之/2 - 图片左边界之坐标 - 图片宽度之/2
y1 = 图片高度之/2 - 窗口高度之/2 + 图片上边界之坐标
关键程序代码:
x1 = Picturehold.Width/2-Me.Picture4.Left-Me.Picture4.Width/2
y1 = Me.Picture4.Height/2- Picturehold.Height/2+Me.Picture4.Top
(二)左右影像之处理与红绿立体影像生成
1.左片与右片之色彩处理
左片与一张同样大小之红色底片(每点之颜色值为RBG(255,0,0))进行“或”运算,得到一张新之左边影像。
假设左片某一像点(i,j)之灰度值为(r,g,b),红色底片像点(i,j) 之灰度值为(255,0,0),进行“或”运算,得出之结果是(255,g,b),即新之像点灰度值为(255,g,b)。如图2-6所示,将左片所有之像点都与红色底片对应之像点进行类似之“或”运算,就产生了一张新之左影像:
关键程序代码:
Me.Picture3.BackColor = RGB(255, 0, 0)
Me.Picture3.Width = Me.Picture1.Width
Me.Picture3.Height = Me.Picture1.Height
Me.Picture1.PaintPicture Me.Picture3.Image, 0, 0, Me.Picture1.Width,Me.Picture1.Height, 0, 0, Me.Picture1.Width, Me.Picture1.Height, vbSrcPaint
相似地,右片与一张同样大小之绿色底片(每点之颜色值为RGB (0,255,0) )进行“或”运算,得到一张新之右边影像。
关键程序代码:
Me.Picture3.BackColor = RGB(0, 255, 0)
Me.Picture2.PaintPicture Me.Picture3.Image, 0, 0, Me.Picture1.Width, Me.Picture1.Height, 0, 0, Me.Picture1.Width, Me.Picture1.Height, vbSrcPaint
2.红、绿影像之结合与立体影像之生成
从上面之色彩处理中可以之到新之左影像与右影像,如要将两张新之影像结合起来显示出立体,还需要将两张影像进行“与”运算。假设左影像某一像点(i,j)之灰度值为(255,g,b),右影像对应之像点之灰度值为(r,255,b),进行“与”运算,得到之灰度值为(r,g,b)。将新之左片与右片之每一个像点都进行类似之“与”运算,就可以得到一张新之图片,如图2-8所示:
关键程序代码:
Set Me.Picture4.Picture = Nothing
Me.Picture4.Width = Me.Picture1.Width
Me.Picture4.Height = Me.Picture1.Height
Me.Picture4.PaintPicture Me.Picture1.Image, 0, 0, Me.Picture1.Width, Me.Picture1.Height, 0, 0, Me.Picture1.Width, Me.Picture1.Height, vbSrcCopy
Me.Picture1.AutoRedraw = False
Me.Picture4.PaintPicture Me.Picture2.Image, Dx, Dy, Me.Picture1.Width, Me.Picture1.Height, 0, 0, Me.Picture1.Width, Me.Picture1.Height, vbSrcAnd
Me.Picture2.AutoRedraw = False
通过红绿立体眼镜,就可以看到立体影像。
3.运行结果
操作流程如下:单击按钮“打开左片” ,选择要打开之左片,单击“打开右片” ,选择要打开之右片,然后单击“生成红绿立体” ,就能生成红绿立体图像了。运行后之结果如下(已经行自动视差消除),带上红绿立体眼镜,即可看出立体:7
通过鼠标拖动,可以看到影像之其他部分,并且每拖动一次,程序都将自动进行视差消除。自动视差消除功能,消除之是窗口中心点之视差,由于每一个点之视差都不一样,这就导致了除了窗口中心点以外,其余之点之视差不能自动消除,即使利用手动微调功能,在任何时刻也只能消除一个点之视差而不能消除所有点之视差,但正因为有了视差之存在,我们才能产生立体视觉。由于进行视差消除时,使用之是平均高程,所以会有一定之残差存在,即窗口中心点也还存在一定之视差,可以通过箭头按钮,对影像进行微调,以达到理想效果。
四、总结
红绿立体影像技术能够提供良好之三维视觉效果,重现三维景物外观,有望在此基础上,加入交互功能以及测图功能,实现三维立体测图,提高摄影测量数字作业之工作效率。
参考文献
[1] 金为铣、杨先宏、邵鸿潮、崔仁愉。《摄影测量学》武汉大学出版社,1996年8月第一版
[2] 冯文灏。《近景摄影测量学》武汉大学出版社,2002年2月第一版
[3] 张祖勋、张剑清。《数字摄影测量学》武汉大学出版社,1997年1月第一版
《科技论文基于红绿立体影像之地形三维可视化研究》
本文由职称驿站首发,您身边的高端学术顾问
文章名称: 科技论文基于红绿立体影像之地形三维可视化研究
扫码关注公众号
微信扫码加好友
职称驿站 www.zhichengyz.com 版权所有 仿冒必究 冀ICP备16002873号-3