OpenCV: как читать изображение поплавков

Я создал Mat в openCV следующим образом:

cv::Mat m = cv::Mat(10,10, CV_32FC1);
for(int i = 0; i < 10; i++){
for(int j = 0; j < 10; j++){
m.at<float>(i,j) = 1;
}
}

и сохранить его на диск:

imwrite("out.png", m);

Я сейчас пытаюсь прочитать это следующим образом:

cv::Mat m = imread("out.png", CV_LOAD_IMAGE_UNCHANGED);

но данные в m кажутся совершенно случайными, когда m.at<float>(5,5) например.

Как я могу прочитать обратно данные, которые записаны в него? Например, в Matlab я могу сделать:

m = imread("out.png")

и это дает мне правильную матрицу 1

Спасибо

0

Решение

Увидеть imwrite

Функция imwrite сохраняет изображение в указанном файле. Формат изображения выбирается на основе расширения имени файла (список расширений см. В imread ()). Только 8-битный (или 16-битный без знака (CV_16U) в случае PNG, JPEG 2000 и TIFF) одноканальный или 3-канальный (с порядком каналов BGR) изображения могут быть сохранены с помощью этой функции. Если формат, глубина или порядок каналов отличаются, используйте Mat :: convertTo () и cvtColor () для преобразования перед сохранением. Или используйте универсальные функции ввода-вывода XML для сохранения изображения в формате XML или YAML.

глубина, преобразовать в

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]