Imagewar入门教程.docx
- 文档编号:9039004
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:77
- 大小:2.02MB
Imagewar入门教程.docx
《Imagewar入门教程.docx》由会员分享,可在线阅读,更多相关《Imagewar入门教程.docx(77页珍藏版)》请在冰点文库上搜索。
Imagewar入门教程
Imageware入门教程
一:
数据评估
在本指南的开始,应该在你的Imgaeware中打开“stare.imw”文件
注意:
来自光学扫描系统的扫描数据受外围环境,材料的类型,物体的颜色的约束,应该趋向于密集和光滑。
在本例中,为了节省时间,扫描数据已经被光滑处理和修整了。
为了确定你的工程目标,你应该弄清楚以下问题:
1.这些扫描数据从哪里来?
这是一个摇臂开关(这个该是点云的名字),由光学扫描系统得到数据。
2.这种数据具有什么特征?
这种数据是非常密集的点云,位置错乱,这意味着它不具备基准或者对齐的信息。
(此处我理解为在扫描数据的过程中,由于人工的原因,比如测量机晃动,以至于点的位置错乱,所以在这个逆向过程中应该进行数据对齐的操作。
3.我的最终产品要用来做什么?
最终模型用来校验原型产品(这个和逆向工程想要达到的目的有关,他要来校验最初的模型,应该是要求很高的精度了)
4.最终反求的模型要达到怎样的精度?
最终做出的曲面必须相当精确,偏差在0.10mm之内(虽然我是学机械设计的,但我的几何量测量太糟糕了,这里的偏差是不是指面的光滑度?
)
Datareductionandpolygonization数据缩减和多边形化
处理海量数据时,典型的处理方式是采用定义点距大小的方式缩减一部分数据,使点云看上去更清楚,也便于多边形网格化数据或做其他处理。
(化繁为简,许多东西多了并不一定好哎)
二:
Datareduction数据缩减
缩减数据比较通俗的做法就是使用SpaceSampling(间隔取样)命令。
这个命令会在指定的间隔中简化点云,也能去处重叠点。
注意:
确认示例文件“start.imw”是否被打开(老外的说法真罗嗦!
!
!
)
缩减数据:
1.从Modify工具条找到Restructure,选择SpaceSampling
。
或菜单Modify|DataReduction||SpaceSampling。
或在点云上击鼠标右键选择
2.选择要处理的点云
3.设定distancetolerancet为0.15mm.(这种做法就好象做一个0.15*0.15方格的筛子或者滤网,每个网格里边只保留一个点),处理结果如下图所示。
处理之后,点云虽然被缩减了75%(原来是210109个点,现在是51616),但它依然具有足够的数据信息提给下面的各步处理。
4.保存一下文件,以"original_reduced.imw."为文件名。
三:
Scanpolygonization多边形化处理
为了更清楚的表达点云的形状,我们要进行点云的多边形网格化处理(CAGD中叫织网,点云的曲面重建技术分三个主要步骤,采样,织网,蒙面。
逆向工程的最高境界就是能自动进行重建,而不是像目前这样为了取得高精度面付出很多的人工参与。
据说Hopper博士,好象是这么一个人,他的研究已经可以实现曲面重建,最终重建的曲面可以是NURBS定义的,这是不是意味着逆向工程要进行革命?
这种革命的出现会让许多人付出失业的代价!
)
后来我又想到,之所以要进行多边形网格化,很大一部分原因为了曲率分析!
因为曲率分析是要借助于每个单元格构成的小平面的曲率来进行近似统计!
!
!
单纯对于点云中的点来说,曲率是没有意义的!
!
!
注意:
确认"original_reduced.imw"被打开
扫描数据的多边形化处理
1.从Construct工具条中找到CreatePolygonMesh,选择PolygonizeCloud
,或从菜单选择Construct|Polygonmesh|PolygonizeCloud。
或击鼠标右键选
2.设定theMax.Similardistanceto为0,设定neighborhoodsize(邻域尺寸)为0.5mm,而后点击Apply
提示:
邻域尺寸值通常近似取spacesampling中设定的距离公差值的3倍,这样可以得到均匀的高质量的网格。
完成之后,在菜单中选择Display|Point|Gouraud-Shaded,就看到如下图所示。
3.按文件名为"original_reduced_polygonized.imw."存盘
四:
Alignmentdatacreation数据对齐
这一节讲述了通过简单的数据对齐把点云的位置调整好。
之所以要对齐点云,是因为输入计算机的初始的点云坐标系是三坐标测量机的赋予它的局部坐标系,这个局部坐标系与Imageware系统坐标系通常不一致,这就导致了点云缺乏合适位置信息,处理起来十分不便。
所以要进行点云对齐,可以更容易地进行建模操作。
--------------------------------(一开始翻译的不够好,在把这个例子完整地做完之后才订正的,许多东西是动手之后才能明白!
!
!
!
)
在建模操作之前,需要把点云的位置调整好,这就是对齐。
(这一处内容一开始我读的不是很明白,后来按照指南中的步骤一步一步做下来,才领悟到为什么要这么做了。
我在一本讲OpenGL编程的书中了解了世界坐标系和局部坐标系的概念。
这里所谓的对齐调整就是把局部坐标系和世界坐标系的方位统一起来。
什么叫世界坐标系和局部坐标系?
说来话长,在OpenGL的图形学原理中这是基本概念,本人是半路出家学习反求工程,对图形学的概念了解的不是很多,我相信有许多人也和我一样不理解某些专业的概念,只好罗嗦一下。
图形在计算机内是以数值的形式进行存储和处理的。
众所周知,坐标建立了图形和数据之间的关系。
为了使所显示的图形数量化,就要在被显示的图形所在的空间中定义一个坐标系,坐标系的长度单位和坐标轴的方向要适合所显示的图形对象,这就是世界坐标系。
所谓的局部坐标系就是以物体的中心为原点,物体的旋转和平移操作均是围绕局部坐标系进行的之所以要统一局部坐标系和世界坐标系,是因为物体执行了缩放操作,局部坐标系也要进行相应的缩放操作,如果缩放的比例在个坐标轴上不同,经过旋转操作后,局部坐标系的各坐标轴有可能不再相互垂直。
之所以要把点云的坐标系与世界坐标系进行对齐是为了下一步更精确定义截面线的位置或其他的建模操作。
因为Imageware对视图的旋转和缩放等操作是基于世界坐标系的。
。
不知我这样理解对不对,,,请前辈指正!
点云对齐的基本操作:
先在点云上找出可以定位的线和面,通过做截面,取得截面线,调整截面线,这些截面和截面线就是点云的对齐特征。
然后在世界坐标系中做出这些线和面的相似形,最后使用Imageware中的对齐工具,进行对齐。
对齐是逆向工程的基本操作。
下文的过程和我说的恰好相反,我觉得他的做法欠自然!
!
!
不经过对点云的特征分析,怎么可能先在世界坐标系中建立点云特征相似形呢?
?
?
?
?
?
?
?
?
创建基准Creatingreferencegeometry(所谓基准,就是点云对齐的依据)
为了正确地调整数据,我们有必要建立一些几何图形作为参照物参与调整过程。
在你的模型原点(0,0,0)和Z方向上创建一些直线,圆,平面等辅助图形,如下面过程所示。
注意:
Makesurethatthefile"original_reduced_polygonized.imw"isopen.
建立直线:
1.在Create工具条中找到Lines选择Line
或选择Create|3DCurve|Line.
2.设定startpoint为X=0,Y=0,Z=0,设定endpoint为X=0,Y=100,Z=0.
3.点击Apply.
建立圆:
1.在Create工具条中找到Arc/Circle,选择Circle
,或者选择Create|CirclePrimitive|Circle.
2.设定center为0,0,0,设定direction为Z.即在XY面上作一个圆
3.随便输入一个半径值,比如20mm(我的IMAGEWARE在这个地方出现BUG了,我输入2之后,不管输什么都显示2。
好多次都这样,比如我输入12345,显示就是22222)
4.点击Apply.
建立一个平面:
1.从Create工具条中找到Plane,选择PlanarSurface
,或选择Create|SurfacePrimitive|Plane.
2.在CreatplaneOptions栏指定ByCenterPoint,设定Centerofplane为(0,0,0)
3.在planeNormal栏选择Z方向作为平面法线
4.输入U向和V向的宽度(Extent),这个值不作要求,我们使用20
5.点击Apply.
6.使用TOP视图(默认摁F1键)观察,如下图所示(下图有网格,你可以在VIEW菜单中选择ShowGrid)
到此为止,辅助的参考几何元素建立完毕,至于为什么要这么干,请继续向下看。
既然做了,肯定是要用到的,所以不要着急!
建立相应的对齐特征(Creatingcorrespondingalignmententities)
下一步,我们必须要在模型中建立相应的实体,这些实体就是点云的特征,对齐点云的位置只需要对齐这些实体的位置即可,可以将这些实体与上一步建立的参考几何图形对齐,完成点云对齐的工作。
这一步,我们要构造截面线来决定哪些点被用来作为参考点,我们要拟合两个圆和一条直线组成参考实体。
注意:
在Imageware中,实体包括点,线,面。
对齐视图:
(Toalignview)
为了创建对齐实体,视图必须首先与基于最合适的平面上的点云对齐,这样就可以很容易地抽取点云的截面线。
1.在菜单中选择View|AlignViewTo|Cloud.
2.选择要对齐的点云,击Apply.
3.在视图中击右键,选择旋转,你看到如下图所示。
(这儿是旋转90度,我不明白该怎样旋转地这么正好?
?
?
我只是大体地旋转到这个位置)
创建截面线:
.一个截面线必须水平地切过网格化之后的点云,稍微切过主侧面之下。
一旦截面线创建完毕,必须进行修整,把截面线分成直线部分和圆。
1.从Construct工具条中找到CreateCrossSection,选择InteractiveCrossSection
,或在菜单中寻找Construct|Crosssection|CloudInteractive
2.设定采样间隔samplingdistanceto为0.25mm.
3.使用鼠标左键建立一条穿过点云的水平直线,记住在画线时要摁着Ctrl键。
(在画水平线和垂直线的时候都要摁着Ctrl)
4.APPLY
5.把多边形网格点云隐藏,并对齐截面线的视口
6.从Modify工具条找到Trim,选择CircleSelectPoints
,或在截面线处右击鼠标选择。
7.设定选择模式selectionmodeto为BothClouds.(晕倒,这好象是10版的做法)
8.使用鼠标画弯曲部分,然后APPLY。
9.重复画另外弯曲的部分,如下图所示。
创建对应的几何图形:
1.菜单中Construct|CurvefromCloud|FitCircle.
2.选择点云('OriginalScanInteractPolySectCldin2')拟合圆。
然后Apply.
3.再对另一端的点云拟合成圆。
4.菜单中找到Create|3DCurve|Line.(这也是第10版的做法,第11版的在Create|CurvePrimitive|Line
5.设定起始点为一圆的圆心,终点为另一圆的圆心,关于圆心的选择,请参考工具条处跳出的点捕捉功能。
6.Apply.直线如下图浅兰色所示。
7.删除由截面线生成的数据,即截面线的点云,只留下两圆和一直线。
Grouptheentities组合实体(依然是为了数据对齐)
在Imageware中,一组数据需要使用对齐工具进行对齐。
这组数据必须包含所有你期望对齐的几何要素,也包括为了对齐而创建的参考图形,在本例中,就是那俩圆和一直线,我们要把它们和点云进行对齐。
.注意:
一旦物体被组合了,这组实体就呈现出一种不同的颜色以示区别。
组合实体:
1.选择Organize|CreateGroup.(这是老版本的做法,在第11版中从Edit菜单中选择CreatGroup)
2.选择那两个圆,直线,和点云。
3.Apply.
4.保存为文件"ready_for_alignment.imw."
5.如下图所示
Top
Alignthedatatoaworldlocation把点云的坐标与世界坐标系对齐
.一旦对齐特征被创建了,你就准备把点云与全局坐标系进行对齐了,我们将使用逐步对齐命令(StepwiseAlignment),该命令允许我们堆叠对齐的配对数据和观察对齐的结果。
注意:
确定"ready_for_alignment.imw"被打开。
对齐数据:
(要把所有的数据都显示出来,不然StepwiseAlignment
是灰色的不可点,为什么会这样,自己想!
!
)
1.从Modify工具条中找到Alignment,选择StepwiseAlignment
,或在菜单中选择Modify|Align|Stepwise.
2.指定使用点作为匹配操作类型
3.'选择颇象大拇指摁下去的那个部位的圆(FitCircle)作为源元素(sourceelement).[TMD,这儿的翻译颇让俺闷了好大一会,老外也真晕人!
太他妈的形象了!
!
]
4.从目的元素列表中选择circle
5.摁下Add,创建第一对对齐配对。
.你可以看到点云组从原位置移到了新位置。
嘿嘿,你知道它们移哪去了吗?
?
?
回想一下一开始咱不是画了一条线,一个圆和一个平面吗?
就是在点云的多边形网格化之后,在数据对齐的一开始那儿做的。
现在点云组中的那个 FitCirle的圆心被移到了那个辅助圆的圆心了!
自己仔细看一看。
。
。
。
现在就该明白了为什么一开始要从(0,0,0)点画一条直线,画一个圆(法线为Z轴)和一个平面了吧。
。
。
。
。
。
6.把视图放大,如下所示:
7.然后指定使用Plane作为第二个匹配类型
8.选择另外一个圆作为源元素
9.选择plane作为目的元素
10.摁Add创建第二对匹配,你可以看到原来圆所在的平面和你在数据对齐一开始创建的那个plane重合起来。
。
。
。
11.指定使用line作为最后的匹配类型。
这样就可以把点云的位置摆正
12.选择扫描线作为源元素,指定直线(Line)作为目的元素
13.摁Add完成第三次配对。
你应该可以看到扫描数据可以围绕它自己进行转动,并把它自身与Y+方向对齐了(两直线重合)。
14.在所有可能的匹配都被输入之后,不再有其他自由度了,那么你现在唯一要干的就是APPLY!
!
!
然后Stepwise对话框会报告对齐处理的精确度,达到的公差是多少。
修改对齐Modifyingthealignment。
解散点云组,删掉所有被用来辅助对齐操作的参照几何形。
由于所选位置的原因,点云侧面部分仍然在Z轴的下面。
为了纠正这种现象,我们将要再一次使用对齐操作,在Z方向上移动这部分
注意:
你可能会问为什么不是把全部数据都移动。
很简单:
你需要回退时,你已经动手移动了你的数据,如果你忘记了记下你移动了哪些数据,那么你就可能碰到麻烦。
自由建模过程可以保持跟踪所有的对齐操作,并把它们保存在文件中。
这些信息会一直保留在文件中,除非你明确地要把它们删除了。
(这儿我读得不是很明白,我觉得它的大体意思就是说为什么要删除那些辅助几何形)
原指南中没有说如何解散点云组。
在Edit菜单中找到Ungroup,然后选择你要解散的组即可。
解散完毕之后,要把那些在前面参与对齐工作的辅助图形都删掉。
删除的方法是在你要删除的图形处右键,然后找到CutEntity.
.一旦对齐操作完成了,你可以得到所有对齐操作的信息。
在菜单中选择Evaluate|Information|Alignment去看一看你把数据怎么样移动,移到哪去了的历史记录。
更有意义的是,如果你需要重新装入初始数据到你已经清除它们的地方去,此时你可以使用Modify|Align|Reapply的命令。
这个操作允许你重新对齐数据。
Toestablishthedistancetomovethedata:
确定移动数据的距离:
1.在Main工具条中找到FileManagement,然后选择ObjectInformation
2.选择要重新找回原信息的点云组。
你可以看到最小的Z值(也就是点云的侧面部分的最小值)的值是xx.xxxx
移动数据(Tomovethedata:
)
1.在菜单中选择Construct|Points.(这也是老版本中的做法,在11版中选择的路径是Create|Points)
2.设定要建立的点坐标为(0,0,0),(此处输入点坐标时,是在工具条栏中找到
,前面在创建直线,圆什么的凡是坐标输入的功能几乎都在那儿找),然后APPLY
3.设定第二个点的坐标为(0,0,xx.xxxx),这里的xx.xxxx即刚才我们在查看点云信息的时候看到的那个Z坐标最小值。
然后Apply
4.在Edit菜单中找到CreateGroup,把上面设定的第一个点(Cld)与点云成组。
5.Apply..注意建立的点坐标与点云的颜色不同以示区别。
如下左图所示(它说的这个,我倒没看见,只要确定点已经建立就可以了。
我的Imageware在这个地方又死了一次)
Twocloudstobealigned
PartoncetheStepwisealignmentwascompleted
6.从Modify工具条中找到Alignment,选择StepwiseAlignment
,或在菜单中选择Modify|Align|Stepwise.
7.指定使用点作为匹配类型
8.选择点云组中的点作为源元素,选择另一个点(Cld2)作为目的元素,即对齐点。
9.先Add,然后Apply.然后观察一下你的点云被移到哪儿了。
。
。
是不是把那两个点重合对齐之后,点云此刻的Z坐标大于等于0了?
?
?
尽信书不如无书,我按他的指南做,结果恰恰背道而迟了,(建议在前面第2步中选择另一点,不要按他说的那样。
)[对不起,事实证明我在这一步做错了,,就应该按原文档中所说的那样操作!
!
!
!
]
10.在菜单中选择Modify|Orient|ResetHome或在工具条中Modify|Orient|ResetObjectAxis重置坐标,把世界坐标系定到新位置。
。
。
。
这将会防止你意外的把数据返回到原来的位置,不让上面的辛苦浪费了。
。
。
。
别忘了把方才构造的两个点删除!
!
!
!
!
!
!
!
!
!
!
!
!
!
11.以文件名"aligned.imw."保存文件。
数据对齐的经验
∙要记住你为对齐操作而建立的所有辅助形的名字,有时要被用到,比如在删除时,或决定要显示哪个,不显示哪个时。
还有在做StepWise操作时选择匹配类型时也需要用到辅助形的名字。
∙及时清除不再需要的对齐操作辅助图形,尽量保证数据的可管理性。
只要你觉得你的对齐操作已经完成了,那么就可以把你自己创建的辅助图形删除,要保证你的数据一直很干净,这个和手工绘图的道理是一样的。
。
。
辅助线太多会干扰作图。
∙在对齐完成之后,要重置一次坐标系,防止以外地回退到原坐标系中,那样就不好再重新对齐了。
也就是说要保证坐标系的唯一性。
至此,对齐操作完全结束,点云已经具有比较合适的坐标系位置了,下一步就是构造截面!
!
!
数据显示,抽取特征(Visualizethedataandextractfeatures)
在处理点云的过程中,有时想看到很微小的特征很困难,有些特征很可能被遗漏了。
在使用点云离散化显示或者单一平面投影模式(flatshadedmode)时,特征遗漏最为常见,在gouraudshaded(一个图形学的专业人士告诉我Gouraud是一个人名)模式下效果会好一些,但微小特征遗漏的现象也时有发生。
为了解决这个问题,我们引入了一些功能操作,可以帮助你更好的观察点云,更方便抽取你需要的特征。
额外的好处就是给你一个立体的(三维的)操作环境,你就不会遗漏掉那些你需要处理的重要的,微小的特征了。
(gouraudshaded应该是多平面投影模式,个人理解,也许不对。
)
这些功能最好不要用来处理非多边形网格化的点云,强烈推荐在使用这些功能前,你要保证你的点云已经被网格化了。
这些功能可以帮助你审度点云的质量。
如果点云呈现很亮的橘色,那么这些工具产生的精确度就会降低一些;如果点云呈现锯齿状,那么这些工具的的精确度就会更加的低了。
在这种情况下,我们就必须再多用一些时间来整理一下数据,如果允许就对数据重新进行调整操作。
(这段叙述应该讲:
用一组有关数据显示的工具来检验点云的质量,如过质量不好,那么就该重新调整前面进行的处理所用的公差值什么的。
。
。
。
)
评估点云(Evaluatingthescandata)
为了评估点云,我们要使用点云反射率(CloudReflectance)工具。
这个操作可以显示在点光源中点云的颜色。
反射率(反射比)就是点的法向量和这个点指向光源的向量之间的夹角(据一个搞图象研究的网友说反射率是指入射光线和法线的夹角的余弦)。
换句话说,这样你就可以更好感受到这些投影到点云上的颜色区域表示了什么。
连续或者柔和过渡的区域将会以相近的颜色进行着色渲染!
[附:
在OpenGL的图形学原理中,顶点的法向量就是垂直于该点的切平面的向量,我猜想Imageware的这个算法就是评估各点的法向量与这个点指向光源的向量之间的夹角,如果一些点的这个角度值在一个邻近的范围内,那么就给这些点染上相近的颜色]
.注意:
确定你的"aligned.imw"被打开了
评估点云(Toevaluatethedata):
1.SelectF1toseeatopviewofyourmodelandungrouptheentities.选择F1,观察你的模型的顶视图(TOP),并解除你以前所做的CreateGroup操作。
[如果你前面所做的都正确,那么现在你摁下F1你就可以看到如下图所示的窗口:
2.从工具条栏中找到Main,再找到BasicDisplay,然后选择FillScreen
,或者在视图的空区域中右击鼠标,找到
3.提示:
要确定你的点云是在gouraudshaded模式下显示的,这种模式在菜单中的路径为Display|Point|Gouraud-Shaded
3.在工具条中寻找路径Modify>Direction,选择HarmonizePolygonNormals
,在菜单中路径是Modify|Direction|HarmonizePolygonNormals,此功能用来调和多边形网格点云的法线方向的。
[我的个人理解由于点云由海量个多边形组成,每个小多边形都可以看作一个小平面,每个小平面都有一个方向,此功能就是把邻近的小平面进行整理一下,使它们形成一个比较连续的区域,这样可以更好的分析反射率]
4.在菜
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Imagewar 入门教程