Конвертировать 2d массив в mat3b - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть массив парных чисел в диапазоне от 0 до 1. Я могу преобразовать их в mat1d, но мне нужно mat3b.

То, что у меня пока есть:

    double snapgrid[132][177];
    //stuff in here to populate snapgrid
    Mat1d image(132, 177);
    memcpy(image.data, snapgrid, 132 * 177 * sizeof(double));
    namedWindow("Display window", WINDOW_AUTOSIZE);
    imshow("Display window", image);
    waitKey(0);

Это работает и показывает мне созданное изображение. Следующая функция, которую я пытаюсь использовать, требует, чтобы это изображение было Mat3b. Я пробовал несколько способов использования image.convertTo, но мне чего-то не хватает. Любой совет был бы великолепен.

edit: я получил его, чтобы не ошибаться, и я улучшил свое черное изображение, умножив на convertTo, поэтому я думаю, что я там.

Что у меня сейчас есть:

    double snapgrid[132][177];
    //stuff in here to populate snapgrid
    Mat1d image(132, 177);
    Mat colorImage;
    memcpy(image.data, snapgrid, 132 * 177 * sizeof(double));
    image.convertTo(colorImage, CV_32F, 255.);
    cvtColor(colorImage, colorImage, COLOR_GRAY2BGR);
    namedWindow("Display window", WINDOW_AUTOSIZE);
    imshow("Display window", colorImage);
    waitKey(0);

Мой последний вопрос: это эффективный способ, или это скорее неразбериха, как я боюсь, это должно выглядеть?

1 Ответ

0 голосов
/ 28 февраля 2020

Редактирование в моем исходном посте достаточно, чтобы заставить меня двигаться, и поэтому я собираюсь назвать это дело закрытым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...