cvPtr2D等效于c ++ OpenCV

时间:2013-06-03 19:12:07

标签: c++ opencv

我正在尝试使用一些使用旧版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)
{
 ????
}

我尝试过像

这样的事情

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

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

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

2 个答案:

答案 0 :(得分: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;
  ..
}

答案 1 :(得分:1)

尝试

void some_function(const cv::Mat & src, cv::Mat & dst )
{
..
    double * w = &dst.at<double>( dst->rows-1, 0 );
..
}