Согласно документации, вызов SKD с опцией «измерить» должно создаваться «изображение глобального значения температуры с типом пикселя INT16 или FLOAT32».
Код: Выделить всё
.\dji_irp.exe -s .\DJI_blablabla.JPG -a measure -o measure.raw
Код: Выделить всё
temps = subprocess.call(['./dji_irp.exe', '-s', path_file, '-a', 'measure', '-o', 'measure.raw'])
with open('measure.raw', 'rb') as f:
file_contents = f.read()
byte_array = np.frombuffer(file_contents, dtype=np.uint8)
print(len(byte_array))
#655360
print(byte_array[:10])
#[69 1 69 1 69 1 78 1 73 1]
Код: Выделить всё
print(byte_array[0:40:2])
# [ 69 69 69 78 73 78 73 65 51 56 65 65 65 69 69 65 61 29 233 178]
print(max(byte_array[0::2]))
# 252
print(min(byte_array[0::2]))
# 1
plt.imshow(byte_array[0::2].reshape((512, 640)), cmap='magma')

Код: Выделить всё
print(byte_array[1:40:2])
# [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0]
print(max(byte_array[1::2]))
# 1
print(min(byte_array[1::2]))
#0
plt.imshow(byte_array[1::2].reshape((512, 640)))

Второе изображение выглядит как маска первого, но я не знаю, как интерпретировать значения первого, потому что для меня такие значения не похожи на температуру, даже в градусах Фаренгейта.
Подробнее здесь: https://stackoverflow.com/questions/789 ... of-dji-sdk