用于热成像图像的RGB图像到灰度转换

时间:2014-11-08 09:43:40

标签: matlab math image-processing

我需要将热成像图像转换为灰度图像,以便使用matlab检测温度变化。

我尝试使用内置函数rgb2gray(),但它对我的图像数据库效率不高,所以我尝试使用颜色和温度之间的相关性计算公式,然后插值,但是那么有可能获得有效的数学公式吗?

我的公式:

  

i = 0.29 * rgb_img(:,:,1)+ 0.59 * rgb_img(:,:,2)+ 0.11 *   rgb_img(:,:,3);

  

I = 0.6889 * rgb_img(:,:,1)+ 5211 * rgb_img(:,:,2)+ 4449 * rgb_img(:,:,3)。。72.8;

但这些都没有帮助。

示例图片是:

http://www.google.com/imgres?imgurl=http://www.breastthermography.com/images/AP-Breast-Case-2.jpg&imgrefurl=http://www.breastthermography.com/case_studies.htm&h=199&w=300&tbnid=48Yto8Y8RtRPjM:&zoom=1&docid=PX1nchTaFQpa3M&ei=ftVdVIatNZCQuATptoLgCA&tbm=isch

2 个答案:

答案 0 :(得分:1)

图像右边有一个小的垂直多色条。它表示已用于Gray-> Color转换的调色板。如果您无法访问此thansform的精确公式,您可以尝试近似:从下到上提取1像素宽的垂直线到阵列。
如果结果数组长度不等于256,则调整范围(如果需要,插值)。现在你有了地图:Color -> Index of this Color = 8-bit Gray Value。用它来构建灰度图像。如果您需要绝对温度,可以将范围调整到280-350(0.1度)或其他合适的范围。

答案 1 :(得分:0)

JFIF中使用的公式是

     Y = 0.299R +0.587G +0.114B

这与你拥有的相当接近。所以当你说你使用的东西不起作用时,我确实知道你的意思。