I'maは、C言語でbegginerと私はJNIを使用アンドロイドのOpenCVのコードの一部、使用してAndroidのビットマップ、 - 私にピクセルをコピーする必要があります。だから、IplImage *をcv:Mat *にキャストする方法は?
AndroidBitmapInfo info;
void* pixels;
int ret;
cv::Mat* mat;
if ((ret = AndroidBitmap_getInfo(env, bitmap, &info)) < 0){
LOGE("AndroidBitmap_getInfo() failed ! error=%d", ret);
return false; // can't get info
}
if (info.format != ANDROID_BITMAP_FORMAT_RGBA_8888){
LOGE("Bitmap format is not RGB_8888 !");
return false; // incompatible format
}
if ((ret = AndroidBitmap_lockPixels(env, bitmap, &pixels)) < 0){
LOGE("AndroidBitmap_lockPixels() failed ! error=%d", ret);
return false; // can't get pixels
}
memcpy(pixels, mat->data, info.height * info.width * 4);
AndroidBitmap_unlockPixels(env, bitmap);
を、私は* IplImageへを持っていますpImageと呼ばれますが、IplImage *をcv :: Mat *に変換する方法はわかりません。
cv::Mat mat(pImage);
私はcv:Mat *ではなくcv:Matが必要です。どんな助け?
cv :: MatはCではなくC++です。 –
あなたの問題は何ですか?あなたはcv :: Matオブジェクトのアドレスを取得する方法を知らないのですか? –