在Matlab热图像中计算温度

时间:2019-12-01 07:29:00

标签: image matlab image-processing

我要做的是计算图像中选定区域的温度 我的代码:

M=imread('IR003609.BMP');

a = min(M(:));      % find the minimum temperature in the image
b = max(M(:));      % find the maximum temperature in the image

imshow(M,[a b]);    
 h = roipoly();     
  maskOfROI =h;      
  selectedValues = M(maskOfROI);      

averageTemperature =mean(selectedValues)  
maxTemperature = max(selectedValues)       
minTemperature = min(selectedValues)  

我的图像是选中的嘴巴区域 enter image description here

那么他对我的价值观是:

averageTemperature =

   64.0393


maxTemperature =

  uint8

   255


minTemperature =

  uint8

   1

现在我的问题是,程序是否抛出正确的温度值(比较图像中显示的值)?或发射率是什么值? 如果它们是错误的价值观,我该如何解决呢? 请帮助

1 个答案:

答案 0 :(得分:0)

我看到颜色条是HSV的色调,所以我建议您按照以下路线转换为温度:转换为HSV,使用第一层,然后重新缩放以适合31-39度。而且颜色似乎被翻转了,所以请将它们上下颠倒。

M = imread('jQLo5.jpg');
Mhsv = rgb2hsv(M);
maxTemp = 39;
minTemp = 31;
Mtemp = (1-Mhsv(:,:,1))*(maxTemp-minTemp)+minTemp;

figure;
imagesc(Mtemp)
colormap(flipud(hsv))
colorbar