代码之家  ›  专栏  ›  技术社区  ›  Mohamed Thasin ah

如何从FLIR视频导出文件中提取热帧?

  •  0
  • Mohamed Thasin ah  · 技术社区  · 4 年前

    我有一个红外摄像机的视频文件。我想把这个视频提取成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视频中提取帧而不丢失热(原始)信息?

    0 回复  |  直到 4 年前
        1
  •  0
  •   bantandor    4 年前

    import cv2
    vidcap = cv2.VideoCapture('3.wmv')
    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
    
    推荐文章