Контекст: Я построил небольшую тепловую камеру, которая может сохранять 70x70 пикселей на SD-карту.Эти пиксели имеют значение цвета в диапазоне от 0 до 2 ^ 16.(На самом деле определенные цвета, такие как черный (значение 0), никогда не отображаются).Этот цвет определяется как объяснено здесь: c ++ определил 16-битный (высокий) цвет
Я хочу преобразовать эти данные в изображение на моем компьютере с использованием Python.
ПримерСобранный из другого вопроса, к сожалению, не дает удовлетворительных результатов: плохое изображение
Как видите, изображение выглядит не очень хорошо.Мой экран показывает что-то вроде этого (обратите внимание, что эти два примера не были захвачены одновременно): photo
Белая рамка не является частью csv-файла.
Это код, который я использовал для создания изображения: я экспериментировал со значением color_max
, но не получил хороших результатов.
#Python CSV to Image converter
#pip2 install cImage
#pip2 install numpy
from PIL import Image, ImageDraw
from numpy import genfromtxt
color_max = 256
#original 256
g = open('IMAGE_25.TXT','r')
temp = genfromtxt(g, delimiter = ',')
im = Image.fromarray(temp).convert('RGB')
pix = im.load()
rows, cols = im.size
for x in range(cols):
for y in range(rows):
#print str(x) + " " + str(y)
pix[x,y] = (int(temp[y,x] // color_max // color_max % color_max),int(temp[y,x] // color_max % color_max),int(temp[y,x] % color_max))
im.save(g.name[0:-4] + '.jpeg')
Это csv-файл: Данные изображения
31 обозначают синий в этом случае, высокие значения более красные.
Спасибо за любую помощь!
Вот некоторая дополнительная информация о моемпроект:
Тепловая камера Arduino с поддержкой SD-карты и возможностью сохранения изображения с использованием датчика тепловизора AMG8833 производства Panasonic: Лист данных
GitHub (Arduino и PythonКод)
Используемый мной чехол для 3D-печати и оригинальный код Arduino
Схема с добавленной SD-картой