我有一个红外摄像机的视频文件。我想把这个视频提取成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'
回溯(最近一次呼叫最后一次):
文件“thermal_camera.py”,第8行,在
flir.process\u图像(文件\u)
如果self.get_image_type().upper().strip()=“TIFF”:
返回json.loads(meta_json.decode())[0][“rawthermaliagetype”]
KeyError:“RawtherAlimageType”
但是上面的代码对于示例热图像效果很好。这意味着我没有将视频中的帧提取为正确的帧。
如何从FLIR视频中提取帧而不丢失热(原始)信息?