Проблемы с загрузкой изображений в формате JPEG2000 RGBA - PullRequest
0 голосов
/ 05 августа 2020

Я использовал OpenCV и Pillow для загрузки изображений. Некоторые изображения jpeg2k загружаются, а некоторые нет. Мой анализ: изображения в режиме RGB загружаются, а изображения jpeg2k в режиме RGBA не загружаются. Я проверил с помощью программы просмотра Kakadu и могу просматривать изображения в режимах RGB и RGBA. Также с ошибкой ниже из OpenCV я пришел к выводу, что изображения не повреждены.

Описание изображения подушки, которое не загружается:

<PIL.Jpeg2KImagePlugin.Jpeg2KImageFile image mode=RGBA size=6972x5225 at 0x124F1E7B8>

Предупреждения OpenCV и сообщение об ошибке для того же изображения:

[ WARN:0] global /Users/travis/build/skvark/opencv-python/opencv/modules/imgcodecs/src/grfmt_jpeg2000_openjpeg.cpp (304) warningLogCallback OpenJPEG2000: Unknown marker

[ERROR:0] global /Users/travis/build/skvark/opencv-python/opencv/modules/imgcodecs/src/grfmt_jpeg2000_openjpeg.cpp (299) errorLogCallback OpenJPEG2000: Error reading SPCod SPCoc element, Invalid code-block style found

[ERROR:0] global /Users/travis/build/skvark/opencv-python/opencv/modules/imgcodecs/src/grfmt_jpeg2000_openjpeg.cpp (299) errorLogCallback OpenJPEG2000: Error reading COD marker

[ERROR:0] global /Users/travis/build/skvark/opencv-python/opencv/modules/imgcodecs/src/grfmt_jpeg2000_openjpeg.cpp (299) errorLogCallback OpenJPEG2000: Marker handler function failed to read the marker segment

Я не эксперт в анализе изображений, поэтому мне нужна помощь, чтобы понять, какие библиотеки можно использовать для загрузки изображений. Я не могу загрузить изображение, так как оно конфиденциально. Если я найду похожие изображения, я их загружу.

  • opencv-python == 4.3.0.36
  • Pillow == 7.2.0

1 Ответ

0 голосов
/ 20 августа 2020

Я проверил следующие библиотеки: Rasterio, openjpeg, glymur, opencv, Matplotlib, Pillow, ImageMagick

  • Получил соответствующий ответ с помощью gylumr, как показано ниже: UserWarning: Марка типа файла была 'jph'. Это должно быть либо jp2, либо jpx. warnings.warn (msg, UserWarning) Список совместимости типов файлов ['jph'] недействителен. Все элементы должны быть членами ['jp2', 'jpx', 'jpxb'].
  • Opencv (cv2.imread) не выдает ошибок / журналов и ответа нет, даже после установки переменной env OPENCV_LOG_LEVEL = INFO .
  • Изображение загружено в Matplotlib как 4-канальный пустой массив.
  • Изображение загружено подушкой как 4-канальный пустой массив.

Стало известно, что мы используем Kakadu для кодирования изображение, которое внутренне сохраняет изображение в формате jph, а затем эти изображения преобразуются в изображения формата jp2.

Поскольку я не могу найти существующую библиотеку для загрузки изображений jph, планирую написать python оболочку для получения NumPy массив поверх библиотек Kakadu.

мы используем kakadu только для изображений mosai c, поэтому некоторые изображения с 'jp2' загружались правильно, а только изображения mosai c не загружались.

...