python双目视觉三维重建代码

阅读: 评论:0

python双目视觉三维重建代码

python双目视觉三维重建代码

各位好,最近在学习双目立体视觉的相关知识,有没有大神能讲解一下利用双目相机的原始图、生成的视差图和相机内参生成点云的方法和 demo code,还有我在利用BM算法生成的深度图用照片查看器无法打开,提示无效的位图文件或不支持文件的格式,代码如下,不知道什么原因?

#include

#include

#include

#include

#include

#include "time.h"

using namespace std;

using namespace cv;

int main()

{

IplImage* img_r, *img_l;//定义两个图像指针 img_l = cvLoadImage("left_4.png",0);

img_r = cvLoadImage("right_4.png",0);

CvSize size = cvGetSize(img_l);

CvMat* disparity_left = cvCreateMat(size.height,size.width,CV_16S);

CvMat* disparity_right = cvCreateMat(size.height,size.width,CV_16S);

CvStereoBMState *BMState = cvCreateStereoBMState();

assert(BMState != 0);

BMState->preFilterSize=41;

BMState->preFilterCap=31;

BMState->SADWindowSize=15;

BMState->minDisparity=0;//最小视差,默认值为 0, 可以是负值,int 型 BMState->numberOfDisparities=32;

BMState->textureThreshold=10;

BMState->uniquenessRatio=15;//该参数不能为负值,一般5-15左右的值比较合适15 BMState->speckleWindowSize =100;

BMState->speckleRange = 32;

cvFindStereoCorrespondenceBM(img_l,img_r,disparity_left,BMState);

cvReleaseStereoBMState(&BMState);

CvMat* disparity_left_visual = cvCreateMat(size.height,size.width,CV_8UC1);

cvNormalize(disparity_left,disparity_left_visual,0,256,CV_MINMAX);

cvSave("disparity.png",disparity_left_visual);

cvShowImage("disparity",disparity_left_visual);

cvWaitKey(0);

cvDestroyWindow("disparity");

return 0;

}

本文发布于:2024-01-28 00:22:53,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063725743532.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:双目   视觉   代码   python
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23