涂料用Matlab数字。Imcontour函数

7视图(30天)
这就跟你问声好!我为我的文凭项目工作,我遇到一些困难。我想做一个油漆程序,你把一个图像数量和计划显示了colorbar颜色和轮廓的。我也想标签每个区域的轮廓的颜色的数量是在那个地区。我已经这么做但不是我期望的结果。在下图中可以看到,标签颜色的线,而不是区域轮廓线和colorbar是渐变的,而不是单独的颜色,因为它们的colorbar索引图像。我怎么能更准确的轮廓区域和标签中间的地区不线?我怎样才能使colorbar出现单独的颜色,而不是作为一个梯度?
(印第安纳州,地图)= rgb2ind(我,10);
显示亮度图像(应用程序。UIAxes,我);
s = colorbar (app.UIAxes);
colormap (app.UIAxes地图);
imshow(我“父”,app.UIAxes);
I2 = ind2gray(印第安纳州,地图);
colormap(应用程序。UIAxes地图);
图像;
% imshow (I2,‘父’,app.UIAxes);
[C, h] = imcontour (I2,“- k”);
clabel (C、h)
colorbar;
1评论
为副总经理
为副总经理 2021年7月2日
colorbar,确保维护
colormap (axeshandle地图)
你跑imcontour ()。
也就是说,如何移动标签的困难让我认为使用轮廓()可能不是最简单的方式来做到这一点。我可能会考虑这一点。

登录置评。

接受的答案

为副总经理
为副总经理 2021年7月2日
编辑:为副总经理 2021年7月3日
这并不是完整的,但我不是很确定,最好的方法是找到这条路。我用这个作为我的测试图片:
inpict = imread (“源/ blobs.png”);
%转换为索引图像使用相应长度的地图
%不让它做任何犹豫
[indpict地图]= rgb2ind (inpict 6“nodither”);
数控=大小(图1);
s =大小(indpict);
%生成edgemap和屏蔽indpict边缘
%肥育edgemap indpict和用它来掩盖
%帮助处理如何rgb2ind()将不处理平滑边缘
edgepict = imdilate(边缘(indpict), (2));
edgepict = padarray (edgepict [1], 1,“两个”);
indpict = padarray (indpict + 1, [1], 1,“两个”);;
indpict (edgepict) = 0;
labelpos =细胞(数控,1);
c = 1:数控
tcpict = indpict = = c;
%的数字,最简单的方法是使用区域质心。
%这不是完美的和带有深深的凹区域可能会失败,但是它很简单。
% S = regionprops (tcpict“重心”);
% labelpos {c} = vertcat (S.Centroid);
%更好地将重心的最大内接凸分区
%,但很复杂。我们发现最大的重心
% near-maximal地区距离的地图。
[L N] = bwlabel (tcpict);
深度贴图= bwdist (~ tcpict);
labelpos {c} = [];
n = 1: n
tdmap =深度贴图。* (L = = n);
tdmap = tdmap > = (0.9 * max (tdmap (:)));
S = regionprops (tdmap“重心”,“区域”);
[~,idx] = max (vertcat (S.Area));
c [labelpos labelpos {c} = {};S (idx) .Centroid];
结束
结束
imshow (~ edgepict);持有
c = 1:数控
文本(labelpos {c} (: 1), labelpos {c} (:, 2),
num2str (c),“horizontalalignment”,“中心”);
结束
注意这样一个事实:杠铃和质心位于对象不适合一个标签的好地方。这是一个情况下,简单的定位方法是行不通的。
使用首选的方法在这个例子中,标签放置更有用。
数字图像中应该对应于适当的行colormap指数。注意环对象。孤立的区域相同的颜色将各自有自己的标签。
试图用一个图像显示使用colorbar惹图像的显示颜色。为了colorbar没有影响形象,你可能需要创建第二个隐藏的轴。它基本上是相同的问题有两个情节colormaps不同。
说,我真的不知道为什么你需要colorbar这项任务。如果你想用它来GUI的调色板,可能有很多其他的方式会导致头痛比试图滥用colorbar少。一种方法可能是使用uibutton创建一系列彩色块对象与背景色属性设置为匹配颜色表。你也可以从颜色表生成一个非常简单的条纹图像并将其显示在第二个轴与形象,有点像的手册版本colorbar没有所有未使用造成的问题行为特性。您可以设置坐标轴buttonDownFunction使用ginput什么的让光标位置和推算出所选颜色colortable形象。

更多的答案(0)

下载188bet金宝搏


释放

R2020a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!