我尝试运行下面的代码,但是我收到了错误消息。我正在为OpenCV函数创建一个名为' Mat :: at'的包装器。而且我试图让它编译成一个' .so'在Ubuntu Trusty上使用' G ++'。我列出了我的' .cpp'的内容。提交我的' .hpp'提交我的错误和我的编译命令。我将非常感谢有关将此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);
}
答案 0 :(得分:0)
应为return &self->at<Point>(row, col);
因为函数期望Point *