访问本机中的mat像素

时间:2012-11-13 10:16:24

标签: 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的

我的错误是

"field 'data' cannot be resolved", "field 'rows' cannot be resolved"

帮助将非常感激。 谢谢

1 个答案:

答案 0 :(得分:0)

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