0

我正在尝试使用一些使用旧 OpenCV (C)、CvMat 的代码...但在 c++ 的上下文中

我找不到 cvPtr2D 的等价物。

void some_function (const CvMat * src, CvMat * dst)
{
..
double * w = (double *) cvPtr2D(dst, dst->rows - 1, 0);
..
}

void some_function (const cv::Mat &src, cv::Mat &dst)
{
 ????
}

我尝试过类似的东西

双 * w = (双 *) cv::Ptr(dst, dst->rows - 1, 0);

或类似的东西?我得到编译错误,我什至无法弄清楚 Ptr 是否做同样的事情......

cvPtr2D 在 c++ OpenCV 中的等价物是什么?

4

2 回答 2

2

在 OpenCV 的 C++ 接口中,很多函数都变成了成员函数,所以我想你正在寻找

void some_function (const cv::Mat &src, cv::Mat &dst)
{
  ..
  int row_idx = dst.rows-1;
  int col_idx = 0;
  double * w = src.ptr<double>(row_idx)+col_idx;
  ..
}
于 2013-06-03T20:35:52.493 回答
1

尝试

void some_function(const cv::Mat & src, cv::Mat & dst )
{
..
    double * w = &dst.at<double>( dst->rows-1, 0 );
..
}
于 2013-06-03T19:19:12.510 回答