峰值,峰值过滤和灰度加权质心
我以前的帖子(
17-SEP-2021
)基于1-D实例。今天的帖子侧重于图像示例(在2-D中),它连接到使用
地区普通
计算峰的灰度重量质心。我也会抛出一些三维表面可视化,只是为了好玩。这是今天的形象:
URL =.“https://blogs.mathworks.com/steve/files/snowflakes2.png”;
a = imread(URL);
imshow(a)
我想看看我们是否可以在这些上专注于算法
白色blobby的东西
(这是我在工程学校学到的技术术语)。首先,让我们尝试计算
区域最大值
。
a_regmax = imregionalmax(a);
imshow(a_regmax)
乍一看,那是
不是
看起来像我以后的东西。让我们找出这里发生了什么。
a_regmax_overlay = imoverlay(a,a_regmax,“绿色”);
imshow(a_regmax_overlay)
我想特别是一个仔细观察一个白色的Blobby的事情。
imshow(a_regmax_overlay(30:47,263:285,:))
其中一个或可能两个,这些位置看起来像我们感兴趣的那种峰值。其他人怎么样?让我向你展示两种不同的方式来探索进一步的探索。第一个是具有3-D可视化的,在那里我们将图像像素值视为灰度表面的高度。下面的代码显示了该表面,然后它将检测到的区域最大值显示为刚刚在表面上方的蓝色和黄点。
数字
a_cropped = a(30:47,263:285);
a_regmax_cropped = a_regmax(30:47,263:285);
冲浪(a_cropped,Edgecolor =“没有”的)
Colormap(“灰色的”的)
灯光GOURAUD.
DASPED([1 1 15])
[y,x,〜] =查找(a_regmax_cropped);
z = a_cropped(a_regmax_cropped);
抓住在
plot3(x,y,z + 1,linestyle =“没有”,Marker =.“o”那......
markeredgecolor =“b”那......
markerfacecolor =“y”的)
Xlabel(“X”的)
ylabel(“y”的)
SET(GCA,YDIR =“逆转”的)
查看(-35,45)
露灯
抓住离开
通过任何一种技术,您可以获得这些最大位置的几个概念的想法,不感兴趣的波动。
正如我在上一篇文章中讨论的那样,您可以使用
H-Maxima变换
过滤掉这些小峰值。
H = 75;
b = imhmax(a,h);
imshow(b(30:47,263:285))
b_regmax = imregionalmax(b);
imshow(b_regmax(30:47,263:285))
b_regmax_overlay = imoverlay(b,b_regmax,“绿色”);
imshow(b_regmax_overlay)
轴([225 315 30 60])
我想结束与之相关的
地区普通
功能。该函数最常使用二进制图像输入,并且它计算二进制图像中对象(连接组件)的各种几何特性。但您也可以同时提供灰度图像。通过该额外信息,您可以计算其他属性。在这里,我对此感兴趣
加权质心
各种检测到的峰。原始图像像素值将用作权重。以下是如何做到的:
Props = RegionProps(“桌子”,b_regmax,a,“重量康德罗德”的)
这是可视化结果的一种方法:
imshow(a)
抓住在
情节(Props.weightedcentroid(:,1),道具.weightedCentroid(:2),......
linestyle =“没有”,Marker =.“o”,markeredgecolor =“y”那......
markerfacecolor =“b”的)
抓住离开
轴([225 315 30 60])
标题(“灰度加权质心”的)
注释
要发表评论,请点击这里要登录您的MathWorks帐户或创建新的。