Python-Почему imshow () выдает пустое изображение для ненулевого массива?

1

Моя цель - отобразить 2D-массив в виде изображения в Python. Массив не содержит нулевых элементов, и поэтому я ожидаю, что изображение, в котором imshow() автоматически устанавливает цветовую шкалу в соответствии со значениями массива. Однако, когда я запускаю код, изображение пустое.

CSV файл: https://ufile.io/urk5m

import numpy as np
import matplotlib.pyplot as plt

data_ = np.loadtxt(open("new_file.csv", "rb"), delimiter=",")
plt.imshow(data_)

Мой результат таков: https://imgur.com/jMNnF0h

Теги:
matplotlib
arrays
image
imshow

1 ответ

2
Лучший ответ

Всегда помните, но на самом деле всегда, изображения работают с 8-битными целыми числами. Вот почему существует 2 ^ 8 оттенков серого и почему большинство общего числа цветов CS составляет (2 ^ 8) ^ 3 = 16,7 мил. цвета. 3, потому что есть 3 цветовых канала - RGB, каждый из которых имеет 256 оттенков.

Все рассчитывают на это, и в основном библиотеки обработки изображений.

Поэтому ВСЕГДА убедитесь, что вы передаете правильный тип данных матрицы в функции обработки изображений:

image_8bit = np.uint8(data_)
plt.imshow(image_8bit)
plt.show()

Изображение 174551

  • 2
    добавить, также обнаружил это с помощью 'plt.imshow (data_, cmap =' jet ', vmin = 0, vmax = 100)', который нормализует диапазон отображаемых данных. Отличный ответ, проголосовал.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню