arDetectMarker +像素格式+分段错误

时间:2015-02-06 10:41:23

标签: c

我正在尝试使用arToolKit中的arDetectMarker函数来检测图像中的标记。我通过以下方式从磁盘读取图像:

cv::Mat image;
cv::Mat temp;
image = cv::imread(path, CV_LOAD_IMAGE_COLOR);
cv::cvtColor(image, temp, CV_RGB2BGR);

并使用以下方法转换为ARUint8 *格式:

dataPtr = (ARUint8 *) ((IplImage) temp).imageData;

我确信数据已正确转换为dataPtr,因为我保存了要检查的图像。不幸的是,当我调用arDetectMarker时,会发生“分段错误”,我不知道原因(我认为这是由于像素格式)。我在文档中读到了:

http://artoolkit.sourceforge.net/apidoc/ar_8h.html#b2868d9587c68fb7255d4f270bcf878f

它说格式通常是ABGR。但我正在使用Ubuntu 14.04,我认为我有v4l驱动程序,虽然我不确定,因为我不使用视频。我试图转换加载到ABGR或BGRA的图像,但我不确定我是否正确,或者这是否真的是一个要求。

另外,我之前做过校准程序。

任何人都可以帮助我吗?

谢谢!

马塞洛。

0 个答案:

没有答案