一、前言
此示例演示如何使用单个校准相机以世界单位测量硬币的直径。
此示例演示如何校准相机,然后使用它来测量平面对象(如硬币)的大小。这种方法的一个示例应用是测量传送带上的零件以进行质量控制。
二、校准相机
相机校准是估计镜头和图像传感器参数的过程。需要这些参数来测量相机捕获的对象。此示例演示如何以编程方式校准相机。
为了校准相机,我们首先需要从不同角度拍摄校准图案的多张图像。典型的校准模式是不对称棋盘格,其中一侧包含偶数个正方形,包括黑色和白色,另一侧包含奇数个正方形。
图案必须固定在平面上,并且与相机的距离应与要测量的对象大致相同。正方形的大小必须尽可能精确地以世界单位(例如毫米)进行测量。在本例中,我们使用 9 张图案图像,但在实践中建议使用 10 到 20 张图像进行精确校准。
三、准备校准图像
创建校准图像文件名的单元数组。
四、估计相机参数
条形图表示校准的准确性。每个条形显示相应校准图像的平均重投影误差。重投影误差是在图像中检测到的角点与投影到图像中的相应理想世界点之间的距离。
五、读取待测物体的图像
加载包含要测量的对象的图像。此图像包括校准图案,并且图案与要测量的对象位于同一平面上。在此示例中,图案和硬币都位于同一桌面上。
或者,您可以使用两个单独的图像:一个包含图案,另一个包含要测量的对象。同样,对象和图案必须位于同一平面上。此外,必须从完全相同的视点捕获图像,这意味着相机必须固定到位。
六、不扭曲图像
使用相机参数对象从图像中删除镜头失真。这对于精确测量是必要的。
请注意,此图像的镜头畸变非常小。如果您使用广角镜头或低端网络摄像头,则不失真步骤更为重要。
七、分段硬币
在这种情况下,硬币在白色背景上是彩色的。使用图像的 HSV 表示的饱和分量将它们分割出来。
八、检测硬币
我们可以假设分割图像中两个最大的连接组件对应于硬币。
九、总结
此示例展示了如何使用校准的相机来测量平面对象。请注意,测量精度在0.2毫米以内。
十、程序
使用Matlab R2022b版本,点击打开。(版本过低,运行该程序可能会报错)
程序下载:基于matlab使用校准相机测量平面物体资源-CSDN文库