【发布时间】:2014-11-10 07:39:37
【问题描述】:
在我的代码中,我想访问 Mat 类型矩阵的每个元素。得到矩阵作为SIFT算法的输出。
SiftFeatureDetector detector;
detector.compute(image, keypoints, siftFeatureDescriptor);
cout<<siftFeatureDescriptor.at<double>(0,0);
当我尝试运行此代码时,它会在 siftFeatureDescriptor.at 函数处引发异常。
当我尝试将 double 更改为 int 时,异常消失了,但它显示错误值 1114898432 而实际值为 49。
使用 Mat.type 我发现矩阵的类型是 32FC1。
请帮忙。
【问题讨论】:
-
如果 mat.type 是 32FC1 你应该使用 at
访问它 -
将所有使用的变量改为浮动解决了这个问题。谢谢。
-
我在最终答案中添加了这一点。您可以验证答案,以便其他人知道您的问题已解决...