使用TangoSupport_findEdgesNearPoint(C API)进行边缘检测失败

时间:2016-06-09 20:45:26

标签: google-project-tango

最近,google tango mira的最新更新为我们提供了一个有趣的边缘检测功能,即支持库,即TangoSupport_findEdgesNearPoint。 从参考文献中的描述:

TangoErrorType TangoSupport_findEdgesNearPoint(
  const TangoXYZij *point_cloud,
  const TangoImageBuffer *image_buffer,
  const TangoCameraIntrinsics *camera_intrinsics,
  const float uv_coordinates,
  TangoSupportEdge **edges,
  int *number_of_edges
)

我假设TangoSupportEdge ** edge和int * number_of_edges提供两个输出,其余为输入。我使用支持lib中提供的管理器来更新point_cloud和image_buffer,并检查它是否正常工作。 camera_intrinsics也正确初始化。之后,我声明并初始化输出(尝试了不同的大小):

TangoSupportEdge** tangoEdgeArray_;
int tangoEdgeArraySize_;
tangoEdgeArraySize_ = 1;
tangoEdgeArray_ = new TangoSupportEdge* [1];

然后,我调用了函数:

int ret = TangoSupport_findEdgesNearPoint(front_cloud_, image_buffer_,
                                            &color_camera_intrinsics_, uvCoordTemp,
                                            tangoEdgeArray_, &tangoEdgeArraySize_);

在onTouchDown上,我更新了uvCoordTemp并调用了这个TangoSupport_findEdgesNearPoint。每当我触摸屏幕并试图找到一些边缘时,它就会抛出这个错误并崩溃。如果没有访问源代码,我很困惑是什么导致了这个opencv断言失败。

E/cv::error(): OpenCV Error: Assertion failed (0 <= roi.x && 0 <= roi.width && roi.x + roi.width <= m.cols && 0 <= roi.y && 0 <= roi.height && roi.y + roi.height <= m.rows) in cv::Mat::Mat(const cv::Mat&, const Rect&), file /home/ubuntu/jobs/redwood_internal/RedwoodInternal/Redwood/3rdparty/opencv/modules/core/src/matrix.cpp, line 323
Fatal signal 6 (SIGABRT) at 0x000049d2 (code=-6), thread 18928 (GLThread 1092)

如果有人正在玩边缘检测功能,我很乐意在探索自己时与您讨论。

0 个答案:

没有答案