文档

段Thermographic Edge-Preserving滤波后图像

这个例子展示了如何使用热图像,展示了一个简单的分割。热图像获得thermographic相机,在红外探测辐射范围的电磁波谱。Thermographic图像捕获所有对象发出的红外辐射高于绝对零度。

热图像读入工作区和使用了解更多关于图像数据。

我= imread (“hotcoffee.tif”);谁
名字大小字节类属性我240 x320 307200单

计算数据的动态范围被看到的温度范围的形象。这个图像的像素值对应于实际温度在摄氏温标。

范围= [min(我(:))max(我(:)))
范围=1 x2单一的行向量22.4729 - 77.3727

显示热图像。因为热图像是一个单精度图像动态范围在0到1,你必须使用imshow自动伸缩功能来显示图像。

图imshow(我,[])colormap (gca、热)标题(原始图像的)

应用edge-preserving平滑图像去除噪声,同时保持图像的细节。这是一个分割前的预处理步骤。使用imguidedfilter函数执行自制导下平滑。的“DegreeOfSmoothing”参数控制的平滑和依赖于图像的范围。调整“DegreeOfSmoothing”适应的范围thermographic形象。显示过滤后的图像。

smoothValue = 0.01 * diff(范围)。^ 2;J = imguidedfilter(我“DegreeOfSmoothing”,smoothValue);图imshow (J []) colormap (gca、热)标题(“引导过滤图像”)

确定使用阈值分割。图像有3个不同的地区——的人,出现的热对象和背景——分离在强度(温度)。使用multithresh计算图像的2级阈值。这个图像划分成3地区利用大津的方法。

打= multithresh (J, 2)
打=1 x2单一的行向量27.0018 - 47.8220

阈值图像使用返回的值multithresh。阈值在27和48摄氏度。第一阈值分割背景强度的人和第二阈值把人从高温物体。段图像和填补。

L = imquantize (J,打);L = imfill (L);图imshow (label2rgb (L)标题(“标签从三级大津矩阵”)

画一个边界框在前台区域图像,并把该地区的平均气温值在盒子里。这个例子假定最大的地区是背景。使用regionprops函数来得到分割图像的区域信息。

道具= regionprops (L,我,{“区域”,的边界框(“大小),“MeanIntensity”,“重心”});%找到背景区域的索引。[~,idx] = max ([props.Area]);图imshow(我,[])colormap (gca、热)标题(“分段平均气温的地区”)n = 1:元素个数(道具)%如果地区没有背景如果n ~ = idx%画边界框周围地区矩形(“位置”、道具(n) .BoundingBox,“EdgeColor”,“c”)%绘制文本显示平均温度在摄氏T = [num2str(道具(n) .MeanIntensity, 3)“\保监会C”];文本(道具(n) .Centroid(1),道具(n) .Centroid (2), T,“颜色”,“c”,“字形大小”,12)结束结束

另请参阅

|||

相关的话题

这个主题有帮助吗?