史蒂夫在图像处理与matlab

图像处理概念,算法和matlab

如何显示颜色样本

在工作“彩色图像处理”章节时Dipum3e.,我发现自己经常想要显示颜色的方形块(或样本),如下所示:

最终,我写了一个函数,Colorswatches.,使用单个补丁对象显示一堆颜色方块。此功能用于Dipum3e.,它包括在本书的Matlab代码文件。要调用它,请从一组以PX3矩阵排列的RGB颜色值开始,其中P是颜色的数量。这线函数返回Matlab Plot功能使用的颜色:

C =线(7)
C = 0 0.4470 0.7410 0.8500 0.3250 0.0980 0.9290 0.6940 0.1250 0.4940 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

现在只是打电话Colorswatches.,通过一组颜色,并且可选地通过所需的颜色网格的尺寸。

grid_size = [3 3];Colorswatches(C,Grid_size)

上图中的颜色样本不是完全正方形,这是因为轴中的数据纵横比不是1:1。但我们可以轻松改变使用的功能。

Daspect([1 1 1])

让我们看看引擎盖下,看到这一切都使用单个补丁对象。

p = colorswatches(c,grid_size)
p =具有属性的补丁:FaceColor:'平面'Facealpha:1 EDGEColor:'无'LINESTYLE:' - '脸:[9×5双]顶点:[45×2双]使用可以查看所有属性

对我们来说,关键属性是顶点脸上, 和facevertexcdata.。这顶点属性为45x2,表示贴片有45顶点。他们来了:

抓住绘图(P.vertices(:,1),P.verces(:2),'*') 抓住离开

脸上属性为9x5,表示有9个面,每个面部连接5个顶点。这是第二排脸上财产:

face2 = p.faces(2,:)
Face2 = 6 7 8 9 10

这些是索引顶点财产。下面,我将使用脸上顶点在第二张脸上绘制黑线的特性。

x = p.vertices(面部2,1);y = p.vertices(面部2,2);抓住绘图(x,y,'K''行宽',3)持有离开

facevertexcdata.属性控制每张脸的颜色。请注意,每张脸都具有恒定的颜色,因为FaceColor.属性是'平坦的'

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 NaN NaN NaN NaN NaN.0.6350 0.0780 0.1840纳米纳米南楠楠

如果我们更改第二行的数字facevertexcdata.属性,第二张脸的颜色将改变。

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

另一种应用Colorswatches.是绘制彩色坡道。例如,我们可以通过使用单行颜色样本来可视化paruze Colormap,将每个样本与0之间的间隙设置为0,并控制数据纵横比,使其看起来像一个长的薄杆。

parula_colors = parula(256);GAP = 0;Colorswatches(Parula_Colors,GAP,[1156])DASPED([30 1 1])轴离开

最后一个注意:我写的时候Colorswatches.,我不希望它对轴属性有任何副作用,这就是为什么我没有写它自动设置轴dataaspectratio。但是,但是,我认为具有实际正方形的颜色样本是足够常见的,以便为它写一个函数,所以我已经添加了squarecolorswatches.Matlab彩色工具。在这里它正在采取行动:

SquarecolorsWatches(C,[3 3])




发布与MATLAB®R2019B

|
  • 打印
  • 发送电子邮件

注释

要发表评论,请点击这里登录您的MathWorks帐户或创建新的。