Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 理解点云库中的立体匹配_Opencv_Point Cloud Library - Fatal编程技术网

Opencv 理解点云库中的立体匹配

Opencv 理解点云库中的立体匹配,opencv,point-cloud-library,Opencv,Point Cloud Library,情况:我正在尝试使用pcl::AdaptiveCostSOStereoMatching获取点云,该方法使用两个校正图像(图片正常) 我使用这些教程来学习如何做到这一点: 错误:程序在运行时调用的AdaptiveCostSOStereoMatching方法时崩溃 问题:如何正确地将图像传递给“compute”方法 我试过了: 1) 由转换的图像 (命令行:“png2pcd.exe in.png out.pcd”) 2) 使用下面的函数从cv::Mat 但是没有运气 将cv::Mat转换为pcl

情况:我正在尝试使用
pcl::AdaptiveCostSOStereoMatching
获取
点云
,该方法使用两个校正图像(图片正常)

我使用这些教程来学习如何做到这一点:

错误:程序在运行时调用
AdaptiveCostSOStereoMatching方法时崩溃

问题:如何正确地将图像传递给
“compute”
方法

我试过了:
1) 由转换的图像 (命令行:
“png2pcd.exe in.png out.pcd”

2) 使用下面的函数从
cv::Mat

但是没有运气

将cv::Mat转换为pcl::PointCloud的函数

void MatToPointCloud(Mat&Mat,pcl::PointCloud::Ptr cloud)
{
int width=mat.cols;
int height=垫行;
pcl::RGB-val;
val.r=0;val.g=0;val.b=0;
对于(int i=0;i//std::cout问题:我下载并安装了旧版本的PCL,但没有
立体声

之后,我从另一个PCL包下载了
立体声
,并将此库添加到我的PCL包中。但它工作不正常

解决方案:我编译了
PCL1.8
,现在我的程序正常了。
OS
Windows

IDE
MSVS 12 2013 x64

如果您试图编译PCL,这些链接可以帮助您:



问题:我下载并安装了旧版本的PCL,但没有
立体声

之后,我从另一个PCL包下载了
立体声
,并将此库添加到我的PCL包中。但它工作不正常

解决方案:我编译了
PCL1.8
,现在我的程序正常了。
OS
Windows

IDE
MSVS 12 2013 x64

如果您试图编译PCL,这些链接可以帮助您:



你能添加实际的错误字符串吗?请添加错误信息。(更新后)根据我使用PCL的经验,指针不是那么直观。
compute
将指针指向云,而你正在使用内置的
Ptr
。尝试的一些建议:要么放弃取消引用(也就是说,
left_cloud
不是
*left_cloud
),将其作为引用传递,而不是
*
,或者只使用一个直点云而不是
Ptr
,并将其作为引用传递给
&
我这样做了,但仍然存在错误。还有一个奇怪的情况:当我关闭预处理时(stereo.setPreProcessing(false)),程序没有崩溃,但输出云是空的(在stereo.getPointCloud之后)。我的PCL(
x64 VS2013
)包不包含
stereo
libruary。我是从其他PCL包(
x64 VS2010
)手动下载的。这可能是错误的原因吗?你能添加实际的错误字符串吗?请添加错误信息。(更新后)根据我使用PCL的经验,指针不是那么直观。
compute
获取指向云的指针,而你正在使用内置的
Ptr
。尝试的一些建议:要么放弃取消引用(也就是说,
left_cloud
不是
*left_cloud
),将其作为引用传递,而不是
*
,或者只使用一个直点云而不是
Ptr
,并将其作为引用传递给
&
我这样做了,但仍然存在错误。还有一个奇怪的情况:当我关闭预处理时(stereo.setPreProcessing(false)),程序没有崩溃,但输出云是空的(stereo.getPointCloud之后)。我的PCL(
x64 VS2013
)包不包含
stereo
libruary。我是从其他PCL包(
x64 VS2010
)手动下载的。这可能是错误的原因吗?