【问题标题】:Trying to read Thermal Data from Hikvision Camera in Python尝试在 Python 中从海康威视摄像头读取热数据
【发布时间】:2020-12-19 07:56:55
【问题描述】:

我正在寻找访问相机热数据的解决方案。好吧,我使用 OpenCV 只能得到原始图像。但没有更多的过程数据,如温度。我尝试了有关海康威视相机的可用库并为此上网。但我无法成功。我也尝试了 FLIR 库,但没有成功。

我的第二个解决方案是将 RGB 转换为温度,但我不知道如何处理这种过程。我也知道设备温度范围在 20 到 150 度之间

正在寻找这样的东西:

# cam model: hikvision DS-2TD2615-10

import cv2
import hikvision api library for example

thermal = cv2.VideoCapture()
thermal.open("rtsp://""user:pass@ip:port/Streaming/channels/202/")
ret, frame = thermal.read()

while True:
   ret, frame = thermal.read()

   temp_data = api.read_temperature(frame) # -> array or excel file

   cv2.imshow('frame', frame)  
   if cv2.waitKey(1) & 0xFF == ord('q'):
       break
thermal.release()
cv2.destroyAllWindows()

我的视频输入类似于这张图片,例如我想通过点击它来找出鼻子有多热:

【问题讨论】:

  • 请提供您迄今为止尝试过的任何代码并添加您遇到的错误。另外我不确定您的问题是否清楚,您正在尝试捕获热像仪图像并获得什么温度?通常是拍摄温度不一致的照片,您是指中心温度,平均温度还是其他温度?
  • 实际上我无法用任何库编写任何东西,所以这部分没有代码,我的代码的其他部分与问题无关。没有有用的来源,没有例子一切都是关于如何从相机读取原始帧。有红外摄像机可以捕捉环境温度,我想使用这些数据。如果我能读取这些数据,我的代码允许我在点击点找到所需的温度。只是问题是没有输入
  • 您应该咨询您的相机制造商的支持文档,了解您的型号是否可以做到这一点。
  • 问题是我找不到python的任何来源或文档:(

标签: python opencv temperature hikvision


【解决方案1】:

来自任何相机的热图像的一般答案 - 您不能只将灰度级别(或颜色,如果您已将调色板应用于图像)转换为温度值。您需要知道一些与 IR 矩阵相关的系数。一些软件可能会将该数据嵌入到图像文件元数据中,但没有标准。此外,如果您在不知情的情况下重新保存了图像文件,您可能会丢失该元数据。

此外,与普通可见光相机一样,红外相机可以根据当前图像调整其范围。所以,如果你在一个房间里拍摄一个人,你照片中的最低温度会像 22°С(冷墙或地板),最高会像 37°C(人体最热的部分)。在这种情况下,您将获得 256 个灰度级,覆盖 15 度的范围,因此黑色是 22°С,白色是 37°С(请记住,比例不是线性的!)。您将相机移至一杯 60°С 的热茶,以及您的灰度与温度变化的关系。因此,您需要获取每一帧的系数

可以在某些相机上“固定”温度范围,但这取决于特定型号。

不仅如此 - 大多数便宜的热像仪根本不处理温度值。

附:哦,我刚刚注意到你相机的确切型号。所以答案甚至更强烈“你不能”。不要指望中国记录不善的监控硬件具备科学或医疗热像仪的功能。

【讨论】:

  • 非常感谢。我将在图像中查找可用的热元数据。实际上,这台模型相机是由我目前正在工作的一台给我的。模型支持固定温度,到目前为止,唯一可行的方法是在我无法提取元数据时使用它。
  • @AmirHosseinMobayen 是的,我更新了关于实际红外摄像机的知识,我发现即使是便宜的型号现在也具有温度测量功能。或多或少的精确
  • 非常感谢。是的,实际模型具有嵌入式温度测量功能。要么我正在寻找在我的系统上使用的 API。所以哪个不可用或者我找不到它:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-26
  • 2022-08-19
  • 2019-05-30
  • 2022-07-12
  • 2019-07-12
  • 2022-01-14
  • 1970-01-01
相关资源
最近更新 更多