双目摄像头或者多目组合摄像头因为组装工艺原因可能会有瑕疵,表现在拍照录相上是图像焦点不在一个水平线或者垂直线,一般场合勉强可用,对精度有要求的场合,需要校正。比如使双目图像录相处于同一水平线,多目拼接也需要找到共同点合并。这可以使用opencv实现,寻找不同图像的相似点,进一步调优,通过比较相以点的坐标,计算出偏移,在拍照和录相时进行校正。

public static Mat FeatureOrbLannbased(Mat src, Mat dst) {FeatureDetector fd = FeatureDetector.create(FeatureDetector.ORB);DescriptorExtractor de = DescriptorExtractor.create(DescriptorExtractor.ORB);DescriptorMatcher Matcher = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE_L1);MatOfKeyPoint mkp = new MatOfKeyPoint();fd.detect(src, mkp);Mat desc = new Mat();de.compute(src, mkp, desc);Features2d.drawKeypoints(src, mkp, src);MatOfKeyPoint mkp2 = new MatOfKeyPoint();fd.detect(dst, mkp2);Mat desc2 = new Mat();de.compute(dst, mkp2, desc2);Features2d.drawKeypoints(dst, mkp2, dst);// Matching featuresMatOfDMatch Matches = new MatOfDMatch();Matcher.match(desc, desc2, Matches);// 筛选点double maxDist = Double.MIN_VALUE;double minDist = Double.MAX_VALUE;DMatch[] mats = Matches.toArray();for (int i = 0; i < mats.length; i++) {double dist = mats[i].distance;if (dist < minDist) {minDist = dist;}if (dist > maxDist) {maxDist = dist;}}System.out.println("Min Distance:" + minDist);System.out.println("Max Distance:" + maxDist);List<DMatch> goodMatch = new LinkedList<>();KeyPoint[] smkp = mkp.toArray();KeyPoint[] dmkp = mkp2.toArray();// double[] arr = new double[mats.length];List<Double> list = new ArrayList<>();for (int i = 0; i < mats.length; i++) {// 相似度,越小越相似System.out.println("mats[i].distance:" + mats[i].distance);// 原始点坐标System.out.println("smkp x:" + smkp[mats[i].queryIdx].pt.x);System.out.println("smkp y:" + smkp[mats[i].queryIdx].pt.y);// 目标点坐标System.out.println("dmkp x:" + dmkp[mats[i].trainIdx].pt.x);System.out.println("dmkp y:" + dmkp[mats[i].trainIdx].pt.y);//对相似性最高的坐标过滤if ((mats[i].distance >= minDist) && (mats[i].distance < minDist + 100f)) {goodMatch.add(mats[i]);list.add(dmkp[mats[i].trainIdx].pt.y - smkp[mats[i].queryIdx].pt.y);}}Matches.fromList(goodMatch);// Show resultMat OutImage = new Mat();Features2d.drawMatches(src, mkp, dst, mkp2, Matches, OutImage);double[] arr = convert2doubleArray(list.toArray(new Double[list.size()]));//获取Y轴偏差countMatches(arr);return OutImage;}

双目和多目摄像头对齐与拼接相关推荐

  1. 双目摄像头和单目摄像头_挑战激光雷达,MAXIEYE要重新定义单目摄像头?

    周圣砚认为:以往业内对单目摄像头的顾虑更像是一种偏见,并非不能逾越的鸿沟,而偏见正是用来打破的. 作者 | 安琪 自动驾驶的"唯激光雷达论"正在受到冲击. 前不久恩智浦的全球CTO ...

  2. 一分钟让你了解人脸识别套件中的双目、单目、3D结构光摄像头的区别以及详细介绍

    宁远电子提供的人脸识别模组可支持双目摄像头和3D结构光摄像头,在客户咨询中经常有被问到双目的为什么会比单目的成本高,区别在哪里,他们的适用于哪些场景呢?在此,宁远电子技术工程师就为大家详细解析,帮助大 ...

  3. Mobileye采用单目摄像头做ADAS太不精确?用双目摄像头的“中科慧眼”认为双目测距算法才是最精确的

    Mobileye采用单目摄像头做ADAS太不精确?用双目摄像头的"中科慧眼"认为双目测距算法才是最精确的 时间 2016-01-05 18:53:01   36氪 原文   htt ...

  4. 双目立体感知「走下神坛」?鼻祖斯巴鲁启用单目摄像头

    一直以来,双目立体感知技术是辅助驾驶赛道的小众路线. 支持者认为,立体感知接近人眼仿生概念,基于三角测量原理,利用成像设备从不同的位置获取被测物体的两幅图像,通过计算图像对应点间的位置偏差,来获取三维 ...

  5. 单目摄像头标定与测距

    单目摄像头标定与测距 一. 标定 首先要对摄像头做标定,具体的公式推导在learning opencv中有详细的解释,这里顺带提一句,这本书虽然确实老,但有些理论.算法类的东西里面还是讲的很不错的,必 ...

  6. 单目摄像头检测6D姿态

    单目摄像头检测6D姿态 CVPR2019: ROI-10D: Monocular Lifting of 2D Detection to 6D Pose and Metric Shape 论文链接: h ...

  7. 基于单目摄像头的BEV实例预测(ICCV 2021)

    作者丨黄浴@知乎 来源丨https://zhuanlan.zhihu.com/p/422992592 编辑丨3D视觉工坊 ICCV'21论文 "FIERY: Future Instance ...

  8. Mobileye采用单目摄像头做ADAS太不精确

    Mobileye采用单目摄像头做ADAS太不精确?用双目摄像头的"中科慧眼"认为双目测距算法才是最精确的 Nicholas • 2016-01-05 18:53 ADAS(Adva ...

  9. 单目摄像头光学图像测距_摄像头与毫米波雷达(Radar)融合解析

    01 摄像头和雷达的融合是很多做ADAS当前所关注的关键问题之一.因为单纯摄像头和雷达都无法解决测距问题.不仅在测距,今后可能所应用到的高精度地图也都是需要使用摄像头和雷达的融合才能够实现.当前寻求到 ...

最新文章

  1. WEB开发之如何改善PHP开发方式
  2. Nautilus启动报错
  3. python软件安装和使用方法_aws cli的安装及使用(内含python的安装方法)
  4. android 4.4 下拉菜单 透明,4.2状态栏,下拉,全局透明教程
  5. java jobdetail_spring+quartz定时任务配置---JobDetailBean
  6. Linux系统调用权威指南
  7. Codeforces Round #121 (Div. 1) A. Dynasty Puzzles DP
  8. ApiCloud数据Url请求
  9. 基于微信小程序的点餐系统
  10. python qq群管理_Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码...
  11. idea 格式化模板修改
  12. springcloud euraka 与springboot 兼容问题
  13. Windows下同步工具FastCopy
  14. 记一次阿里电话面试(java技术岗)
  15. 企业PC终端安全问题分析及整改措施
  16. 数据库方面是知识和实战
  17. Requirement already satisfied
  18. 计算机网络—数据交换方式
  19. Storyboard 之segue用法总结
  20. 如何确定scrum的story之一:识别利益相关者和目标

热门文章

  1. 张艺兴代言爱奇艺VIP会员 “快乐要尽兴”追剧没时差
  2. Flutter 加载图片方法
  3. SSO跨域单点登录实现方案
  4. linux dd命令卡住,linux下显示dd命令的进度:
  5. [linux] linux使用dd命令制作硬盘镜像
  6. WIN10自带邮箱绑定腾讯企业邮箱及个人QQ邮箱的方法
  7. 【Go Web】Go对接华为云obs代码
  8. 汉字数字转阿拉伯数字 和 阿拉伯数字+千/百/万/亿 转阿拉伯数字
  9. linux命令打包文件,Linux系统中打包文件的命令详解
  10. java argb_如何使用原始ARGB数据创建颜色位图(CGBitmapContextCreate)