Функция Imread, создающая только гранулированное изображение шума для некоторых изображений. Оттенки серого

io.imread не может правильно прочитать файл изображения jpg в градациях серого. Создает изображение только серого шума.

Получите эту ошибку: «Низкий диапазон данных изображения; изображение отображается с растянутым контрастом».

У меня есть стопка из 20 почти одинаковых изображений с одинаковыми размерами, 1024 x 1280. Некоторые отображаются нормально, а некоторые просто как серый шум. Я пробовал несколько плагинов для чтения и получил тот же результат.

image = io.imread('Image_00019.jpg')  
plt.imshow(image, cmap='gray')

Ожидаемое: изображение отображается нормально.
Фактическое: отображаемое изображение представляет собой просто серый шум.


person DataJo    schedule 22.12.2018    source источник


Ответы (1)


Похоже, это связано с автоматическим масштабированием цветовой карты. И, по-видимому, решение заключается в установке параметров vmin и vmax в масштабе исходного изображения, а не в масштабе массива, считываемого imread, который используется по умолчанию.

К сожалению, функция imread не может определить истинный масштаб из исходного файла изображения и автоматически передать эту информацию в imshow. Но я полагаю, что это какая-то посторонняя дополнительная информация, поскольку imread просто строго захватывает массив пикселей. Не будет ли это частой причиной искажения изображения?

Если у кого-то есть какие-либо дополнительные комментарии, не стесняйтесь добавлять.

проблемы с низкой контрастностью изображения (контрастное растяжение) в matplotlib

person DataJo    schedule 23.12.2018