我在C ++中遇到错误 - 错误:无法将'cv :: Point_ <int>'转换为'cv :: Point * {aka cv :: Point_ <int> *}'作为回报​​</int> < / int>的

时间:2014-03-12 15:31:55

标签: c++ c opencv wrapper

我尝试运行下面的代码,但是我收到了错误消息。我正在为OpenCV函数创建一个名为&#39; Mat :: at&#39;的包装器。而且我试图让它编译成一个&#39; .so&#39;在Ubuntu Trusty上使用&#39; G ++&#39;。我列出了我的&#39; .cpp&#39;的内容。提交我的&#39; .hpp&#39;提交我的错误和我的编译命令。我将非常感谢有关将此C ++ OpenCV函数作为C指针返回的任何帮助。因为那是我的目标。谢谢。

错误:

 error: cannot convert ‘cv::Point_<int>’ to ‘cv::Point* 
    {aka cv::Point_<int>*}’ in return
 return self->at<Point>(row, col); 

(我也得到正常&#34; Contol达到非空函数错误的结束&#34;)

.cpp的:

 Point* cv_Mat_at_Point(Mat* self, int row, int col) {
   return self->at<Point>(row, col);
 }

Hpp:

 Point* cv_Mat_at_Point(Mat* self, int row, int col)

编译命令:

 g++ -Wall -shared -fPIC -o c-binding.so c-binding.cpp

编辑RedX:

Point* cv_create_Point(int x, int y) {
    return new Point(x, y);
}

1 个答案:

答案 0 :(得分:0)

应为return &self->at<Point>(row, col);

因为函数期望Point *