栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

简单的解决方案如何对OpenCV进行立体声校准和整流?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

简单的解决方案如何对OpenCV进行立体声校准和整流?

我找不到我做错了什么,导致答案不正确,但是我却找到了可以解决更多问题的解决方案!
我遇到了StereoVision库,并考虑到它的文档水平很低,因此我设法获取/编写了以下可校准和纠正OK的快照。

import cv2import os.pathimport numpy as npfrom stereovision.calibration import StereoCalibrator, StereoCalibrationfrom stereovision.blockmatchers import StereoBM, StereoSGBMcalib_dir = 'data/config/calibration'if(not os.path.exists(calib_dir)):    calibrator = StereoCalibrator(9, 6, 2, (480, 640))    for idx in range(1, 14):        calibrator.add_corners((cv2.imread('images/left%02d.jpg' %idx), cv2.imread('images/right%02d.jpg' %idx)))    calibration = calibrator.calibrate_cameras()    print "Calibation error:", calibrator.check_calibration(calibration)    calibration.export(calib_dir)calibration = StereoCalibration(input_folder=calib_dir)if True:    block_matcher = StereoBM()else:    block_matcher = StereoSGBM()for idx in range(1, 14):    image_pair = (cv2.imread('images/left%02d.jpg' %idx), cv2.imread('images/right%02d.jpg' %idx))    rectified_pair = calibration.rectify(image_pair)    disparity = block_matcher.get_disparity(rectified_pair)    norm_coeff = 255 / disparity.max()    cv2.imshow('Disparity %02d' %idx, disparity * norm_coeff / 255)    for line in range(0, int(rectified_pair[0].shape[0] / 20)):        rectified_pair[0][line * 20, :] = (0, 0, 255)        rectified_pair[1][line * 20, :] = (0, 0, 255)    cv2.imshow('Rect %02d' %idx, np.hstack(rectified_pair))    cv2.waitKey()

以下是我在问题中张贴的同一张图片得到纠正的结果。

虽然用于计算视差图,但它需要调整其参数(程序包提供了一个工具),但可以完成工作:)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/516919.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号