У меня есть видео файл ИК камеры. Я хочу извлечь это видео в n-кадров. Я использовал обычный метод opencv для извлечения кадров из видео. как показано ниже,
import cv2
vidcap = cv2.VideoCapture('3.mp4')
success,image = vidcap.read()
count = 0
while success:
cv2.imwrite("frame%d.jpg" % count, image) # save frame as JPEG file
success,image = vidcap.read()
print('Read a new frame: ', success)
count += 1
Извлекает изображение как обычное изображение вместо теплового изображения.
Я обнаружил, что с помощью приведенного ниже кода.
import flirimageextractor
from matplotlib import cm
from glob import glob
flir = flirimageextractor.FlirImageExtractor(palettes=[cm.jet, cm.bwr, cm.gist_ncar])
for file_ in glob("images/*.jpg"):
flir.process_image(file_)
flir.save_images()
flir.plot()
it throws KeyError: 'RawThermalImageType'
Трассировка полного стека
Traceback (последний вызов был последним) : Файл «thermal_camera.py», строка 8, в файле flir.process_image (file_) «/usr/local/lib/python3.5/dist-packages/flirimageextractor/flirimageextractor.py», строка 101, в файле process_image, если self.get_image_type (). upper (). strip () == "TIFF": Файл "/usr/local/lib/python3.5/dist-packages/flirimageextractor/flirimageextractor.py", строка 133, в get_image_type return json .loads (meta_ json .decode ()) [0] ["RawThermalImageType"] KeyError: 'RawThermalImageType'
Но приведенный выше код хорошо работает для образцов тепловизионных изображений. Это означает, что я не извлекаю кадр из видео как правильный кадр.
Как извлечь кадр из видео FLIR без потери тепловой (необработанной) информации?