【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
上面一篇文章,我们完成了直线的拟合操作。在实际场景中,拟合之后更多地是需要进行长度的测量。既然是测量,那么就需要两个信息,一个是测量点的信息,这部分目前可以通过设置全局变量的方法来完成;另外一个就是需要直线的k和b,这部分也已经通过直线拟合实现了。所以,点线测量实际并不复杂。而且,真实应用的时候,这里的点往往也是来自于某个固定目标的点,或者是人为设计的某个点。
1、控件位置
控件的位置位于【几何测量】-》【点+线】。当然基础工程、基础流程都是需要配置的,这里不再赘述了。
2、配置全局变量
因为点线测距,既需要点,也需要线。线已经准备好了,所以这里只需要设置一个全局变量的点就好了,
3、整体设计
整体设计,基本上是前面几节课的一个大总结。首先是读取图像,读取结束之后就开始图像预处理。预处理完毕,就可以着手轮廓的提取。有了轮廓,就有了重心坐标,当然也就可以拟合直线了。最后就是用点线插件计算一下交集。
4、点线配置
点线配置,就是我们之前所说的点、线设置。这部分已经讨论过。点来自于全局变量,线来自于直线拟合。大家看一下这个截图就明白了,
从图上可以明显看出主要的配置。配置的内容集中在点坐标、直线斜率、直线截距三个部分。右侧是单击执行按钮之后的效果。如果没有什么问题,我们就可以在左下方看到对应的打印效果。结果告诉我们,两者之间的交点是239、367,距离为154。
实际应用中,摄像头安装好了之后,一般几个标记点的位置都是固定的,比如这里的P点。甚至于说,这里的P点有好几个。但是它们共同的特点就是,一般摄像头安装好了之后,位置就相对固定了,所以通过这样的固定点当成参考点,很容易计算出这个点到其他直线、圆、长方形的距离。只不过这里为了测试和验证,我们随机设定了一个数值。真实部署的时候,这些点都需要单独标定的。
5、丰富一下结果输出部分
在整体设计当中,我们其实还添加了两个图像显示。一个是源图像的显示,一个是输出结果的显示。主要也是为了体现两者之间的对比之处。一幅图像从拿到之后,到出结果,这中间往往还是要走一段距离的。我们今天的demo尚且都需要思考一番,实际部署的时候,遇到的情况只会更烦、更麻烦。遇到这些困难和麻烦的时候,一定要迎难而上,因为实际学习遇到的场景往往都是简单的、单一的,它不能帮助客户解决真实存在的问题,这是最要命的。
另外从我个人的经验来说,还有两点需要注意。第一,就是加强人工智能的学习,未来的硬件只会越来越便宜,算力越来越强,这意味着用软件可以做的事情也越来越多;第二就是加强传感器的学习。图像只是众多传感器中的一环,图像中不确定的信息可以试着能不能由其他传感器来进行补充解决,这很重要。算法固然重要,但是光源、镜头、其他传感器的配合也一样重要,我们要用好图像,但是也不能排斥其他传感器和方法。