Как наложить IplImage * на cv: Mat *? - PullRequest
0 голосов
/ 18 сентября 2011

Я новичок в языке C и мне нужно скопировать пиксели в Android Bitmap, я использую фрагмент кода Android OpenCV, используемый для jni:

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, например:

cv::Mat mat(pImage);

Но мне нужен cv: Mat *, а не cv: Mat.Любая помощь?

Ответы [ 2 ]

0 голосов
/ 19 сентября 2011

В руководства по OpenCV включена статья Взаимодействие с OpenCV 1 .

0 голосов
/ 18 сентября 2011

Отвечая на ваш вопрос название:

cv::Mat* mat = new cv::Mat(pImage);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...