根据坚固度改变分割对象的颜色

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);

接受的答案

为副总经理
为副总经理 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()进行一些调整。

更多答案(0)

类别

了解更多图片帮助中心而且文件交换

s manbetx 845


释放

R2021a

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!