Несоответствие типов данных компонента предупреждения openCV

Я использую OpenCV 2.4.4 на компьютере с ОС Cent. Мой код в настоящее время загружает изображение с предупреждением: несоответствие типов данных компонента

вот код:

#include <cv.h>
#include <highgui.h>
#include "imglib.h"
int main( int argc, char** argv )
{
Mat image = imread( argv[1], CV_LOAD_IMAGE_ANYDEPTH);
imwrite("debugwriteout.jp2", image);
}

Я передаю имя файла .jp2 в градациях серого в args. Изображение имеет 14-битную глубину пикселей, но когда я распечатываю значения пикселей, я получаю значения свыше 20000, и мое изображение теперь полностью черный квадрат. Любой совет будет принят во внимание.

Дополнительная информация:
Когда я изменяю флаг imread на CV_LOAD_IMAGE_GRAYSCALE, он успешно преобразует изображение в 8-битную глубину пикселей и печатает полезный вывод, поэтому я могу сказать, что модуль jasper работает, по крайней мере, несколько корректно.

Любой совет будет принят во внимание,

Спасибо

2

Решение

SZman,

Я решил свою проблему.
Решением является позиция старшего бита.
В 16 битах для глубины 14 бит вместо xxxxxxxxxxxxxx00 вместо 00xxxxxxxxxxxxxx.
Если вы хотите правильное значение, вы должны указать 2 бита справа.

1

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

Пожалуйста, прочитайте изображение, используя эти флаги

Mat image = imread( argv[1], CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
0

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