MATLAB在图像处理中的应用

图像处理概念、算法和MATLAB

如何显示色样

在处理“彩色图像处理”一章时DIPUM3E,我发现自己经常想要显示方形块(或色样),如下所示:

最后,我写了一个函数,色样,使用单个面片对象显示一组彩色正方形。此函数用于DIPUM3E,并包含在MATLAB代码文件为书.要调用它,首先从一组按Px3矩阵排列的RGB颜色值开始,其中P是颜色的数量。这个线函数返回MATLAB绘图函数使用的颜色:

c=行(7)
c=0.4470 0.7410 0.8500 0.3250.0980 0.9290 0.6940 0.1250 0 0.4940 0.1840.5560 0.4660 0.6740 0.1880.3010 0.7450 0.9330 0.6350 0.0780 0.1840

现在就打电话色样,传入一组颜色,并可选地传入所需大小的颜色网格。

网格大小=[3];色样(c、网格大小)

上图中的色样不是很正方形,这是因为轴中的数据纵横比不是1:1。但是我们可以使用方向比作用

daspect([1])

让我们看看下面的引擎盖,并看到这一切工作,只使用一个补丁对象。

p=色样(c,网格大小)
p=具有属性的面片:FaceColor:“flat”FaceAlpha:1 EdgeColor:“none”线型:“-”面:[9×5 double]顶点:[45×2 double]使用GET显示所有属性

对我们来说,关键属性是顶点,,FaceVertexCData.这个顶点属性为45x2,表示面片有45个顶点。这是:

持有绘图(p.顶点(:,1),p.顶点(:,2),‘*’)举行

这个属性为9x5,表示有9个面,每个面连接5个顶点属性:

: face2 = p.Faces (2)
面2=678910

这些都是进入市场的指数顶点财产。下面,我将使用顶点属性在第二个面周围绘制一条黑线。

x=p.顶点(面2,1);y=p.顶点(面2,2);持有情节(x, y,“k”,“线宽”(3)保持

这个FaceVertexCData属性控制每个面的颜色。注意每一张脸的颜色都是不变的,因为脸色属性是“平坦”

p、 FaceVertexCData
ans = 0 0.4470 0.7410 0.8500 0.3250 0.0980 0.9290 0.6940 0.1250 0.4940 0.1840 0.5560 0.4660 0.6740 0.1880 0.3010 0.7450 0.9330 0.6350 0.0780 0.1840

如果我们改变表格第二行的数字FaceVertexCData属性,则第二个面的颜色将改变。

p.FaceVertexCData(2,:) = [1 1 0];

的另一个应用色样就是画一个颜色斜面。例如,我们可以通过使用一行颜色样本来可视化parula颜色地图,将每个样本之间的间隙设置为0,并控制数据宽高比,使其看起来像一个又长又细的条。

parula_colors = parula (256);差距= 0;colorSwatches(parula_colors,gap,[1 256]) daspect([30 1 1])轴

最后一点:当我写色样,我不希望它对坐标轴属性有任何副作用,这就是为什么我没有写它来自动设置坐标轴DataAspectRatio. 不过,我确实认为,拥有实际上是正方形的色样足够常见,可以为其编写函数,所以我添加了方形色样MATLAB颜色的工具.下面是它的行动:

方形色样(c,[3])




与MATLAB®R2019b一起发布

|
  • 打印
  • 发送电子邮件

评论

如需留言,请点击在这里登录到您的MathWorks帐户或创建新帐户。