Помогите разобраться, как данные GDAL записать в матрицу OpenCV.
Имеется изображения TIFF 16 bit, нужно открыть его с помощью GDAL и потом записать в OpenCV.
стандартные функции типа
Mat image = imread("/home/user/mozgovoy/16bit_t.tif", cv::IMREAD_LOAD_GDAL | cv::IMREAD_ANYDEPTH );
не работают, ( работают только для 8 бит).
Всё что нашёл в интернете, это для 8 битных изображений.
работаю на С/С++, может кто делал подобное ?
GDAL with OpenCV
-
- Новоприбывший
- Сообщения: 2
- Зарегистрирован: 28 июл 2015, 14:49
- Репутация: 0
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: GDAL with OpenCV
А как вы обычно помещаете 16бит данные в opencv? Например из массива? Нужен пример кода.
[ Сообщение с мобильного устройства ]
[ Сообщение с мобильного устройства ]
-
- Гуру
- Сообщения: 4107
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1081
- Ваше звание: программист
- Откуда: Казань
Re: GDAL with OpenCV
а в чем проблема написать несколько строк самому? У Mat() есть конструктор, который просто отображает матрицу на готовый массив значений. Читаете изображение с помощью GDAL в память, и отображаете на нее Mat(). Ниже пример отображения на матрицу float, укладка по строкам.Pepslee писал(а):Помогите разобраться, как данные GDAL записать в матрицу OpenCV.
Код: Выделить всё
float *src_buf;
...
читаем канал снимка формата float в src_buf
cv::Mat band_mat(ny,nx,CV_32FC1,src_buf);
-
- Новоприбывший
- Сообщения: 2
- Зарегистрирован: 28 июл 2015, 14:49
- Репутация: 0
Re: GDAL with OpenCV
Спасибо, я уже разобрался, с OpenCV проблем не было, было проблема с GDAL, я не знал как считать в буфер матрицу
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей