У меня есть массив парных чисел в диапазоне от 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);
Мой последний вопрос: это эффективный способ, или это скорее неразбериха, как я боюсь, это должно выглядеть?