如何在MatLab中根据光照和阵列输入进行决策?

1bqhqjot  于 2022-11-15  发布在  Matlab
关注(0)|答案(1)|浏览(109)

我正在尝试完成一段我开始编写的代码。我有一张.BMP图像,我把它转成了热像仪。
我还将输出的方向从图片的中心点改为r和theta。
我正在尝试做的是获取热、r和θ信息,并输出整个图像中最高热特征的r和theta值。
有人知道怎么做这件事吗?

clc
close all
clear all

[img,cmap] = imread('test_thermal.bmp');

img = img(:,:,1);
[ny,nx] = size(img)

% Since there are an even number of rows and columns

y1d = -ny/2 + 1/2:- 1/2 + ny/2
x1d = -nx/2 + 1/2:- 1/2 + nx/2

[X2D,Y2D] = meshgrid(x1d,y1d);
figure()
imagesc(x1d,y1d,img);

[theta2D, radius2D] = cart2pol(X2D,Y2D);
theta2Ddeg = rad2deg(theta2D);

Image Before
Image After

txu3uszq

txu3uszq1#

1.要获得峰值热值,您必须校准:您需要2个温度基准,例如,您需要知道给定的2个像素等于2(°C/°F/K)温度。
然后,您可以通过将img中的值范围Map到2温度测量的刻度来判断整个图像的每个像素的温度。
这两个基准之间的温度距离应尽可能宽,但不能大于图片中的最小(T)和最大(T),以避免丢失分辨率。
如果可能,在img上寻找皮肤温度时,尝试使用一个测量了皮肤温度的输入参考图像:这是第一个参考点。
对于此输入参考图像,还要测量房间温度,这将是输入图像的背景:第二个参考点。
如果您能以某种方式将室温测量添加到每个输入图像中,作为与灰度级输入图像分开的输入,则整体温度测量的精度将大大提高,因为背景温度可能会有很大差异。
1.利用上述Map关系,求出峰值温度只需将max(max(img))转化为温度。
1.至少不需要cart2pol就可以找到这里询问的最高温度值。
1.如果你提供这样的测量,即使只是模拟的,我也可以向你展示如何为你提供的2个参考点制作这样的Map。
如果您觉得有用,请考虑将其标记为正确答案。感谢您阅读我的回复。

相关问题