本帖最后由 newly1429 于 2020-8-31 19:23 编辑
本人在做双目人脸三维重建,MATLAB版本R2016a,因为disparitySGM函数在2016里用不了,特地下了个R2020a
相机标定是自己用程序生成一张棋盘格打印出来贴在板子上,然后用两个相机拍了24组图片,用MATLAB自带的stereo camera calibrator标定得到相机参数
然后拍摄人脸图像进行处理,rectifyStereoImages校正左右图像,校正之后的图像特征处在同一水平线上
disparitySGM计算视差,reconstructScene计算三维点,
得到的视差图结果不是很好,和官网上的示例效果差太多,我的视差计算出来离散的太严重,不仔细看都看不出轮廓,官网上的例子得到的视差都是连续的可以看出物体,所以想请教一下各位为啥会这样
另外查看三维点发现大部分坐标都是NAN和-Inf,其余的坐标都小于0,可视化之后更看不出来是啥了用于计算视差的原图是本人的脸部照片
下面附上我计算得到的视差图和代码,还请在这方面有经验的前辈多多指导
I1_C3 = imread('D:\Pictures\imageCap\new1-L.png');
I2_C3 = imread('D:\Pictures\imageCap\new1-R.png');
[J1_C3, J2_C3] = rectifyStereoImages(I1_C3, I2_C3, calibrationSession.CameraParameters);% ,'OutputView','full'
disparityRange = [