Loading...
首页资讯正文

又双叒发现了!OpenCV4中boxPoints函数在Python与C++中不一致问题

2021-02-20 13:54:16 浏览 2426 点赞 89 收藏 9

软件版本信息 Windows10系统 OpenCV4.5.1 VS2017 找问题是个技术活 因为需要把一个点阵DM码转换位标准DM码,我就先用python快速验证测试,写了一个演示程序,运行结果如下:

其中用到轮廓分析相关的知识,有一个步骤是获取最小外接矩形,得到旋转矩阵的四个顶点坐标,Python中的代码如下 rect = cv.minAreaRect(np.array(points))
print(rect)
box = cv.boxPoints(rect)
print(box)
box = np.int0(box)
print(box) 翻译成C++的代码如下: cv::RotatedRect rrt = cv::minAreaRect(pts); cv::Mat ptfs; cv::boxPoints(rrt, ptfs); std::cout << ptfs << std::endl; 运行打印显示坐标信息如下

果然不一样,刚开始我没有注意,于是就掉坑了!打印出来以看居然是这样!我猜想原因是C++中所有图像对象都是Mat的数据结构,Python中都是numpy数组,导致处理数据在返回时候结构顺序不同,才变成了这样。真实的具体原因是什么,还有待进一步探索!

来源:opencv学堂

*本文仅代表作者观点,不代表易百纳技术社区立场。系作者授权易百纳技术社区发表,未经许可不得转载。

精彩评论

内容存在敏感词
打赏
打赏作者
风&飘
您的支持将鼓励我继续创作!
金额:
¥1 ¥5 ¥10 ¥50 ¥100
支付方式:
微信支付
支付宝支付
微信支付
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

易百纳技术社区
确定要删除此文章、专栏、评论吗?
确定
取消
易百纳技术社区