我正在寻找访问相机热数据的解决方案。我使用了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()
我的视频输入类似于这张图片,例如,我想通过点击它来了解鼻子有多热:
任何相机的热图像的一般答案-您不能仅将灰度级别(或颜色,如果您已经将pallete应用于图像)转换为温度值。你们需要知道一些和IR矩阵有关的系数。一些软件可能会将这些数据嵌入到图像文件元数据中,但没有相应的标准。此外,如果您在不知情的情况下重新保存图像文件,则可能会丢失该元数据
此外,像普通可见光摄像机一样,红外摄像机可以根据当前图像调整其范围。所以,如果你在房间里拍摄一个人,照片中的最低温度将是22°C(冷墙或地板),最高温度将是37°C(人体最热的部分)。在这种情况下,您将得到256个灰度,覆盖范围为15度,因此黑色为22°С,白色为37°С(请记住比例不是线性的!)。你将相机移到一杯温度为60°C的热茶上,观察灰度与温度变化的关系。因此,您需要获得每一帧的系数
可以“固定”某些摄像机的温度范围,但这取决于具体型号
更重要的是,大多数廉价的热敏相机根本不处理温度值
哦,我刚注意到你相机的确切型号。所以答案更强烈的是“你不能”。不要指望中国的监控硬件有科学或医学热成像的能力
相关问题 更多 >
编程相关推荐