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

Моя цель - отобразить 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

1 Ответ

2 голосов
/ 25 марта 2019

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

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

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

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

enter image description here

...