android - 以原生方式访问 mat 像素

标签 android c++ opencv android-ndk native

我正在尝试访问和修改原生的 mat 像素,但我无法摆脱错误。 我的功能是:

`extern "C" {
JNIEXPORT void JNICALL Java_org_opencv_samples_tutorial3_Sample3Native_FindFeatures(JNIEnv*, jobject, jlong addrGray, jlong addrRgba)
{
    Mat* pMatGr=(Mat*)addrGray;
    Mat* pMatRgb=(Mat*)addrRgba;
    vector<KeyPoint> v;
int i=0;

uchar* pixel = addrRgba.data;
for(int i = 0; i < Mat.rows * Mat.cols; ++i)
{
    // access pixel[0],pixel[1],pixel[2] here
    pixel += 3; // move to next pixel
}

}

}
`    

它被调用:

FindFeatures(mGrayMat.getNativeObjAddr(), mRgba.getNativeObjAddr());

来自java

我的错误是

“无法解析字段‘data’”、“无法解析字段‘rows’”

帮助将不胜感激。 谢谢

最佳答案

Mat.rows应该是pMatGr->rowsMat.cols应该是pMatGr->colsaddrRgba.data 应该是 pMatRgb->data

关于android - 以原生方式访问 mat 像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13358892/

相关文章:

Android Material Component BottomNavigation 顶部阴影在放置在底部时与在中心时不同

java - 根据其他类的数据自动设置单选按钮

iphone - cocoa touch -- 测试对象是否是 objective-C 对象

c++ - 使用动态规划创建最大配置

c++ - 识别曲线直线部分的算法

java - 在 Button 之上添加 TextView?

c++ - 为什么编译器无法在我的代码中推断出模板参数?

python - 将图像像素从正方形转换为六边形

python - 在 OpenCV 中绘制有角度的矩形

android - MoPub SDK : how to remove the video ads ?