对于那种多孔材料的图片,怎么实现根据每个孔大小的不同染上不同颜色,且颜色随着孔的大小能渐变
这个首先要识别图像上的孔洞。
然后使用多边形替孔洞,最后把面积计算一下,注意使用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