小编Mas*_*992的帖子

如何将包含指针的OpenCV-C++代码翻译成JAVA?

我目前正在将一些c ++代码翻译成Java,用于Android应用程序.我偶然发现了一些棘手的c ++代码(c ++也不是我的主要语言).下面是c ++代码.此函数计算openCV图像帧中的图像渐变(灰度).

cv::Mat computeMatXGradient(const cv::Mat &mat) {
  cv::Mat out(mat.rows,mat.cols,CV_64F);

  for (int y = 0; y < mat.rows; ++y) {
    const uchar *Mr = mat.ptr<uchar>(y);
    double *Or = out.ptr<double>(y);

    Or[0] = Mr[1] - Mr[0];
    for (int x = 1; x < mat.cols - 1; ++x) {
      Or[x] = (Mr[x+1] - Mr[x-1])/2.0;
    }
    Or[mat.cols-1] = Mr[mat.cols-1] - Mr[mat.cols-2];
  }
}
Run Code Online (Sandbox Code Playgroud)

在这个片段中,我不知道如何解释第一个循环中的前两行:

    const uchar *Mr = mat.ptr<uchar>(y);
    double *Or = out.ptr<double>(y);
Run Code Online (Sandbox Code Playgroud)

这里做了什么,我怎么能把它翻译成Java代码?我查看了'mat.ptr <>()'函数,但这也没有用.(文档可以在这里找到.)关于指针的基本信息(比如这里)我已经读过了,但我仍然没有得到如何阅读上面的行.除了使用的指针,我也不太确定如何处理正在使用的'uchar'类型.这如何转化为Java?

整个代码可以在这里找到. …

c++ java android opencv

5
推荐指数
1
解决办法
1042
查看次数

标签 统计

android ×1

c++ ×1

java ×1

opencv ×1