Я хочу прочитать pgm изображение в python. Я использую cv2.imread ('a.pgm'), но он возвращает неверные результаты. В Matlab я использую imread и получаю правильный результат, который представляет собой одноканальное 16-битное изображение. Но cv2.imread в python возвращает 3-канальное изображение, а значения пикселей также неверны. Почему это происходит? Как читать 16-битные изображения pgm в python? А какие библиотеки?чтение pgm изображений с cv2 в python
Заранее спасибо.
[OpenCV поддерживает изображения PGM] (http://docs.opencv.org/3.1.0/d4/da8/group__imgcodecs.html#gsc.tab=0). Пожалуйста, поделитесь своим кодом/выходом/результатами/ошибками. –
[Этот ответ] (http://stackoverflow.com/a/7369986/4014959), который просто использует Numpy, может оказаться полезным. Обратите внимание, что некоторые программы используют собственный endian вместо big endian, но похоже, что этот код ответа обрабатывает это. –
Попробуйте использовать эквивалент python для этого: 'imread (" path_to_image ", IMREAD_UNCHANGED)'. Ваше изображение должно быть таким же, как у Matlab, в конечном счете, разным по масштабному коэффициенту. – Miki