基于OpenCV实现,仿Halcon卡尺工具

最近实现了一下卡尺定位的工具,在这里分享一些过程中遇到的一些问题和解决方法

首先,原理

 沿着我们确定好的方向采样后就会得到一个NxM(宽x长)大小的图,对这个图我们进行投影得到一个1xM大小的图,这里投影及一阶导数是这样子的(红色即待求亚像素位置):

 

一开始做到这里的时候提取像素级坐标是没问题的,但尝试用拟合二次函数的方法计算亚像素坐标时候总是有偏差。一开始以为是双线性插值的精度不够,尝试了双三次插值后结果还是一样。

最后在查阅VisionPro相关资料后,资料中给出的插值方式如下:

 P1、P2、P3、P4为邻近四个像素,a、b、c、d为待插值坐标距离邻近像素中心位置距离,绿点所表示的像素值可由下面公式计算得出

(1-a)(p2\times (1-b)+p1\times b)+a\times (p3\times (1-b)+p4\times b)

至此算法核心部分问题已解决,剩下便可以根据原理计算出亚像素坐标,附效果图

感谢@yixiaopao的指正,源代码92行为图像分配了不正确的长度,应该把*sizeof(float_t)删掉;不过不删的话也不会造成泄露。

开发不易,请作者喝杯咖啡!感谢(拜托下载前自己先看一下,头文件私信我获取)

再次声明下,代码不包括拖拽等你想象的功能(从文件大小也能看的出来),请谨慎下载,毕竟原理都已说明白了,私信与我交流想自己实现的我也已经尽量回复了。

源代码下载链接https://download.youkuaiyun.com/download/qq_37299618/36451540icon-default.png?t=N7T8https://download.youkuaiyun.com/download/qq_37299618/36451540

评论 111
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zzzzzzzzzzzzzz---

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值