用MATLAB进行图像处理

图像处理概念,算法和MATLAB

MATLAB R2015b中的图形

我受到ICIP 2015和MATLAB R2015b中新的图函数的启发,写了一些函数来帮助实验基于图的图像处理算法。本周早些时候将代码提交给文件交换系统.以下是截图:

在接下来的几周里,我将向您展示如何开始使用这些函数。今天首先从MATLAB R2015b中图的一般介绍开始。我会拿明尼苏达州开涮。

有很多方法可以创建图形。一种简单的方法是提供两个节点列表。每对节点对应一条边。节点可以通过文本标签编号或标识。

G =图({“一个”“B”“B”}, {“B”“C”' D '})
G =具有属性的图:边:[3x1表]节点:[4x1表]

如上所示,一个图包含一个节点表和一个边表。

您可以使用情节函数可视化图形。

情节(G)

使用有向图画一个有向图。这是一个使用节点号,节点名和边权值的例子。

S = [1 1 2 2 3 3 4 4 5 5];T = [2 5 3 4 4 5 3 1 1 6];名称= {“α”“β”“伽马”“δ”‘ε’“ζ”};重量= randi(100,大小(s));D =有向图(s, t,权重,名称)
D =有向图属性:边:[10x2表]节点:[6x1表]

权重值直接存储在边缘表中。

D.Edges
ans = EndNodes Weight ______________________ ______ 'alpha' 'beta' 24 'alpha' 'epsilon' 36 'beta' 'gamma' 83 'beta' 'delta' 2 'gamma' 'delta' 5 'gamma' 'epsilon' 17 'delta' 'alpha' 74 'delta' 'gamma' 65 'epsilon' 'alpha' 65 'epsilon' 'zeta' 46

在绘制有向图时,箭头表示边的方向。

情节(D)

你可以选择不同的情节布局。

情节(D,“布局”“分层”)标题(“分层图形图”
情节(D,“布局”“圆”)轴平等的标题(“圆线图”

您可以自定义GraphPlot直接。调用情节函数的输出参数来获取GraphPlot对象。

p = plot(D)
p = GraphPlot with properties: NodeColor: [0 0.4470 0.7410] MarkerSize: 4 Marker: 'o' EdgeColor: [0 0.4470 0.7410] LineWidth: 0.5000 LineStyle: '-' NodeLabel: {'alpha' 'beta' 'gamma' 'delta' 'epsilon' 'zeta'} EdgeLabel: {} XData: [-0.0350 0.5891 0.4312 0.9742 -0.5613 -1.3981] YData:[0.4486 0.8689 -0.1321 0.3850 -0.4499 -1.1206]使用GET显示所有属性

现在修改一些属性。

p.MarkerSize = 8;p.Marker =“x”;p.EdgeColor =“红色”

我真的很喜欢突出函数,可用于强调选定的图形节点和边。

这里我突出了节点之间的最短路径“α”而且“ζ”

p = plot(D);shortPath =最短路径(D,“α”“ζ”(p, shortPath)
shortPath = 'alpha' 'epsilon' 'zeta'

许多图形计算是可用的。例如,您可以计算所有节点之间的成对加权距离,或者所有节点的出度。

距离(D)
ans = 0 24 91 26 36 82 76 0 67 2 84 130 79 103 0 5 17 63 74 98 65 0 82 128 65 89 156 91 0 46 Inf Inf Inf Inf Inf 0

不良节点6。从那里你哪儿也去不了!这是因为它的出度是0。

出度(D)
Ans = 2 2 2 2 2 20 0

让我们看一个更大的图表,基于明尼苏达州的道路网络。(如果您想自己使用这些数据,可以从UF稀疏矩阵集合.)

负载(“minnesota.mat”) xy = Problem.aux.coord;minn_roads = graph(Problem.A);minn_roads.Edges。Weight = hypot(xy(minn_roads.Edges.EndNodes(:,1),1) -...xy (minn_roads.Edges.EndNodes (:, 2), 1),...xy (minn_roads.Edges.EndNodes (: 1) 2) -...xy (minn_roads.Edges.EndNodes (:, 2), 2));情节(minn_roads“XData”xy (: 1),“YData”xy (: 2));

你可以计算一个图的最小生成树。

T = minspantree(minn_roads) plot(T,“XData”xy (: 1),“YData”xy (: 2));
T = graph with properties:边:[2639x2 table]节点:[2642x0 table]

这个例子展示了如何用最短路径树给图上色。

[tree, d] = shortestpathtree(minn_roads, 1561);P = plot(minn_roads,“XData”xy (: 1),“YData”xy (: 2));p.NodeCData = d;colorbar

下次我将开始讨论节点为图像像素的图。




发布与MATLAB®R2015b

|
  • 打印
  • 发送电子邮件

评论

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

Baidu
map