我正在尝试访问和修改原生的 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->rows
,Mat.cols
应该是pMatGr->cols
, addrRgba.data
应该是 pMatRgb->data
。
关于android - 以原生方式访问 mat 像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13358892/