matlab根据图像中孔洞的面积大小上色

对于那种多孔材料的图片,怎么实现根据每个孔大小的不同染上不同颜色,且颜色随着孔的大小能渐变

这个首先要识别图像上的孔洞。
然后使用多边形替孔洞,最后把面积计算一下,注意使用polyshape,然后用area函数
最后是颜色映射这块,建议用colormap,jet使用比方说64色,然后每种孔patch起来,不同的颜色。举个栗子

r = (rand(100,1)*(1.1-0.9) + 0.1)/20;
x = rand(100,1);
y = rand(100,1);
c = jet(64);
s = pi*r.^2;
n = floor((s-min(s))/(max(s)-min(s))*63) + 1;
for i = 1:numel(r)
theta = linspace(0,2*pi,21);
xr = x(i) + r(i)*cos(theta);
yr = y(i) + r(i)*sin(theta);
patch(xr, yr, c(n(i),:)); hold on
end
colormap(c);
h = colorbar;
set(h, 'ticks', 0:0.2:1, 'ticklabels', arrayfun(@num2str, linspace(min(s),max(s),6), 'uniform', 0))
axis equal

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632