上一篇:DIY自制低成本激光扫描仪 EZScan3D准备工作
笔者假定读者已阅读了上一篇并做好了准备工作。如果你不符合这个要求,请先阅读了上一篇并做好准备工作,谢你的合作。
如果你还没有安装摄像头驱动程序,请先安装摄像头驱动程序。笔者建议使用摄像头生产厂 家提供的驱动程序,不要使用微软提供的通用驱动程序。例如,对于笔者的摄像头,使用厂家提供的驱动程序最高分辨率为1600x1200像素。如果使用微软 提供的通用驱动程序,最高分辨率仅为640x480像素。在开始扫描前,你需要根据使用的摄像头等数据做系统设置。
A. 系统设置
鼠标点击EZScan3D菜单'功能'->'系统设置',打开系统设置文件。请 注意系统设置文件中以字母i开头的参数其数值必须是整数(不带小数点),例如640。以字母f开头的参数其数值必须是浮点数(带小数点),例如3.0。以 字母b开头的参数其数值必须是0或1。你需要设置以下参数:
参数 |
数值 |
iCameraIndex |
单摄像头:0
多摄像头:0,1...用不同的数值选用一个摄像头。 |
iCameraWidth
iCameraHeight |
这两个整数是的摄像头水平及垂直分辨率。默认值是640x480。可考虑使用摄像头的最高分辨率。 |
iDisplayWidth
iDisplayHeight |
启动视频时,EZScan3D将创建视频监控窗口。这两个整数是窗口宽度和高度。默认值是320x240。可按各人需要选择窗口大小。 |
iCalibrationVersion |
选择标定页版本V1或V2。默认值是1,即V1。V1每页有6个标记,V2每页有8个标记。版本V2必须使用程序2.0以上版本。 |
fCalibrationScale |
标定页上标尺长度mm,必须带小数点。默认值是180.0。可实现实物和成像的大小一比一。 |
fK1 |
用于纠正镜头枕形(<0)和桶形(>0)失真,必须带小数点。请参考纠正镜头失真一文。 |
... |
|
B. 摄像头设置
鼠标点击EZScan3D菜单'功能'->'摄像头设置'启动摄像头设置窗口。请注意这个窗口的形式取决于摄像头驱动程序。笔者建议,如果可能,禁用 自动曝光,自动白平衡和自动对焦。某些型号的摄像头可能不允许你在右图所示的窗口禁用这些选项。在这种情况下,你可能需要使用摄像头自带的程序来实现这些选项。本步骤的主要目标是实现:
在做标定时:图像清晰、明暗适中;
在扫描时:(i)控制快门速度在1/100(s)以上;
(ii)调节亮度使背景全黑,激光线明亮但不饱和。
在下面两张图像中,左下图亮度较佳,右下图背景偏亮。 |
|
|
|
C. 系统标定
鼠标点击EZScan3D菜单'功能'->'开视频',打开 视频。右边所示的窗口将显示。将摄像头和标定板(两标定板必须相互垂直)放在桌子上,调整相对位置使视频监控窗口的图像如右图所示。你可能需要调节摄像头 设置(见上段)来达到满意的图像。用作标定的图像要求图像清晰、明暗适中。点击EZScan3D菜单'功能'->'系统标定(视频)'来标定系统。 如果标定成功程序将显示标定完成。否则,请调整图像并再次尝试。在程序显标定完成时,请留意右下角状态栏,如果K1绝对值大于0.01,你可能需要纠正镜 头失真(参考纠正镜头失真一文)。请注意,标定完成后不可移动摄像头或标定板,即不能改变二者的相对位置。否则,你必须重新做标定。有问题请参考常见问题。程序2.0以上版本在标定完成时会显示标定误差。在使用标准打印纸尺寸的标定页时,标定误差应在1mm以内。如果超出2mm,应检查标定板的精度和摄像头的质量。 |
|
D. 准备扫描
完成标定后,将扫描对象放置在标定板前面。扫描对象应该小于标定板,并置于适 当位置。如右图显示,扫描对象是一只温度传感器。为调整扫描对象低端位置,一个瓶子被用来提高温度传感器到适当的高度,瓶子本身不是扫描对象的一部分。操 作者将激光线指向扫描对象和标定板。右图是为了说明扫描仪的设置,实际扫描时应降低环境光的亮度,滿足B. 摄像头设置中所提的要求。 |
|
E.扫描操作
点击EZScan3D菜单'功能'->'开始/继续 扫描',开始扫描。上下移动线激光线来覆盖扫描对象。扫描时,已收集的数据将在视窗上实时显示,如右图显示。请留意视窗右侧下端的状态栏,已收集的3D坐 标点个数将在此实时显示,如有错误也将在此实时显示。扫描时有几个要点:
(i)摄像头中心视线与激光束平面之间的夹角必须适当,并尽量保持一致。默认允许范围是20-35度。如有必要,可以在系统设置中改变;
(ii)左标定板的左侧和右标定板的右侧必须同时可见激光线;
(iii)不要转动激光线,即防止左高右低然后右高左低来回变换。 |
|
在扫描过程中,如果你想预览扫描结果,你可以点击EZScan3D菜单'功能'->'暂停扫描'。如右图的扫描结果将显示(可能需要等待几秒钟)。点击工具栏中的
可以改视角。如果你想收集更多的数据点,点击EZScan3D菜单'功能'->'开始/继续 扫描'继续扫描。如果你对结果满意,请点击EZScan3D菜单'功能'->'结束扫描'来结束扫描。
提示:最佳扫描方式是从顶部至底部或底部至顶部,一次完成扫描。如果一次扫描不完整,第二次再做局部补充,所得的成像可能表面粗糙。 |
|
F. 完成扫描
在结束扫描后,你可以删除一些噪声点或某些你不想要的扫描点。移动鼠标到视窗中某一兴趣点,按住鼠标左键然后移动,屏幕上将显示一个随鼠标移动而改变的圆。 如果你要删除圆外的点,松开鼠标按钮,在你确定后,可删除圆外所有的点。如果你要删除圆内的点,先按下键盘上的Ctrl键,然后松开鼠标按钮,在你确定后,可删除圆内所有的点。点击工具栏中的
可以改视角。清理数据点后,你可以预览结果。点击EZScan3D菜单'功能'->'生成网格'。在生成网格'后,点击EZScan3D菜单'查看'->' 查看类型'->'3D实体'。如果还需清理数据点,点击EZScan3D菜单'查看'->'查看类型'->'3D点'。 |
|
扫描完成后,你可以选择保存原始扫描点。点击EZScan3D菜单'文件 '->'保存原始3D点'。生成的文件是ASCII码,扩展名是pts。文件格式很简单:扫描点总数,然后是扫描点的XYZ坐标。类似地,你可以选 择保存采样后的3D坐标点,点击EZScan3D菜单'文件'->'保存采样3D点'。
如果你想保存的网格,点击EZScan3D菜单'文件'->'保存采样网格'。文件格式你可以选择Obj或Ply。两者均为ASCII码。
下一篇: DIY自制低成本激光扫描仪 EZScan3D 纠正镜头失真
|