2011-09-17 14 views
-1

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が必要です。どんな助け?

+0

cv :: MatはCではなくC++です。 –

+0

あなたの問題は何ですか?あなたはcv :: Matオブジェクトのアドレスを取得する方法を知らないのですか? –

答えて

0

あなたの質問のタイトルに答える:

cv::Mat* mat = new cv::Mat(pImage); 
関連する問題