根据坚固度改变分割对象的颜色
6次浏览(过去30天)
显示旧的注释
我使用了regionprops来计算所示图像中每个形状的凸壳,然后在它周围用红色绘制区域。我想根据立体度值对每个斑点进行不同的着色,然后在侧面的图形本身上显示颜色图。本质上,数值越低,颜色越深。
我想过通过if语句手动实现它,但我如何在一侧显示颜色映射?
感谢!
目前的情况:
我想要的效果:
Stats = regionprops(掩码,{...
“重心”,...
“MajorAxisLength”,...
“MinorAxisLength”,...
“定位”,...
“循环”,...
“ConvexHull”,...
“稳健”,...
“偏心”,...
的边界框(“大小),“区域”})
图,imshow(img)
持有在
为K = 1:大小(stats)
tempHull = stats(k).ConvexHull;
tmpSize = size(tempHull);
x = tempHull(:, 1);
y = tempHull(:,2);
tempSolid = round(stats(k)。坚固,2);
fill(x, y, fillColor);
情节(x, y,“线宽”, 1“颜色”,“r”);
text(stats(k).Centroid(1), stats(k).Centroid(2), num2str(tempSolid),“字形大小”12);
结束
持有从
标题(“稳健”,“字形大小”, 18);
0评论
接受的答案
为副总经理
2021年8月10日
我没有一个好的例子,所以我就用这个:
掩码= rgb2gray(imread(“源/ blobs.png”)) > 10;
Stats = regionprops(掩码,{...
“重心”,...
“MajorAxisLength”,...
“MinorAxisLength”,...
“定位”,...
“循环”,...
“ConvexHull”,...
“稳健”,...
“偏心”,...
的边界框(“大小),“区域”});
%无需使用imshow();它只是使色彩图处理复杂化
持有在
为K = 1:大小(stats)
tempHull = stats(k).ConvexHull;
tmpSize = size(tempHull);
x = tempHull(:, 1);
y = tempHull(:,2);
tempSolid = round(stats(k)。坚固,2);
填充颜色为固色值
fill(x, y, stats(k).Solidity);
情节(x, y,“线宽”, 1“颜色”,“r”);
text(stats(k).Centroid(1), stats(k).Centroid(2), num2str(tempSolid),...
“字形大小”12“horizontalalignment”,“中心”);
结束
持有从
集(gca),“ydir”,“反向”,“xtick”[],“ytick”[])
轴平等的
盒子在
xlim([0大小(面具,2)))
ylim([0大小(面具,1)))
colorbar
colormap(夏天)
此时,您所需要做的就是生成所需的颜色映射,并使用colormap()如所示应用它。您可能需要使用caxis()进行一些调整。