1

我和我的同事正在使用这个(python)脚本从热像仪导入数据:

      try:
    while True:
      data = q.get(True, 500)
      if data is None:
        break
         data = cv2.resize(data[:,:], (80, 60))
#          f.write(data)
      minVal, maxVal, minLoc, maxLoc = cv2.minMaxLoc(data)

#          img = raw_to_8bit(data)
      np.savetxt("uvc-capture-file.txt",np.array(data))
#         f.write(" ")
      display_temperature(img, minVal, minLoc, (255, 0, 0))
      display_temperature(img, maxVal, maxLoc, (0, 0, 255))
      cv2.imshow('Lepton 2.5 Radiometry', img)
      cv2.waitKey(1)

    cv2.destroyAllWindows()
  finally:
    libuvc.uvc_stop_streaming(devh)
    f.close()
  print "done"
finally:
  libuvc.uvc_unref_device(dev)
finally:
libuvc.uvc_exit(ctx)

if __name__ == '__main__':
 main()

一切正常,但是在 "data = cv2.resize(data[:,:], (80, 60))" 行中,我们将调整大小从 640、480 更改了。我们不确定为什么脚本最初是这样,但是当我们运行它时,它给了我们一个很好的文本文档,矩阵中包含 640x480 的数字。当我们将它插入 Matlab 时,它仍然可以工作。唯一的问题是热传感器仅从 80x60 区域收集数据。它从哪里获得“填充”数字?该脚本的工作方式与 80x60 相同,但它没有给我们一个包含 640x480 数字矩阵的文本文档,而是给了我们一个 80x60 的文本文档。知道为什么吗?

(对不起被屠杀的python脚本)

4

1 回答 1

0

根据cv2.resize 的 API 文档,您的 640x480 矩阵是根据您传入的数据矩阵中可用的任何数字进行插值的。除非您需要将原始 80x60 数据“放大”为某种特定格式,否则您应该能够跳过此行/步骤而不会丢失信息。

于 2017-02-23T13:19:04.790 回答