【发布时间】:2015-09-08 17:53:43
【问题描述】:
我有一些 C++ openCV 代码。
有点像
void foo(...., Mat mx){
...
x_d = mx.at<float>(x,y);
...
}
我尝试用 C 重写这部分。我读过docs,他们说数据是 CvMap 结构中的联合。但是我在尝试获取它时收到了不同的错误消息。他们在这里:
void foo(...., CvMat *mx){
...
x_d = *(((float*)mx->data) + y * width + x); // cannot convert to a pointer type
x_d = *(mx->data + y * width + x); // invalid operands to binary + (have 'union <anonymous>' and 'int')
...
}
所以我有两个问题。 我怎样才能从这个代码的结构中得到那个浮点数? 这是我需要的数据吗?
【问题讨论】:
-
您为什么要这样做? OpenCV C API 在 5 年前被替换。您真的应该使用 C++ 编写新代码。
-
这不是新代码。我尝试在使用 CvMat(仅 C 代码)操作的 gstreamer 插件中使用它。函数 foo()(我尝试重写)是我在使用 Mat 的 C++ 代码中的原型。
标签: c++ c opencv porting unions