我是从图像的骨架开始工作的。想要填充一些不完整的分支,我提取了骨架的终点并实现了Dijkstra的算法,以找到点之间的最小路径(我得到一个矩阵FR 500x500)。
我应用了成本和方向的约束来限制不良连接。我的问题是我仍然有不需要的链接,因为一些起点属于不同成本的几条路径。然后我提取了这些起点,只保留成本最低的那些(矩阵P 75x3,第1列和第2列是起点的坐标X和Y,第3列是成本)。
我现在尝试编码,我想采取所有可能的路径,那些有起点和成本对应于矩阵FP,但我不知道该怎么做。
我想在此代码中指出每个起点都有“权利”,只采用最便宜的路径
NumberPath = 0;
S=size(EP); %EP = matrix 90x2 coordinates x and y of skeleton's end points
NumP=S(1);
for i=1:NumP-1
for j=i+1:NumP
FP = ED(i,:);
LP = ED(j,:);
[cost,path] = dijkstra(PC,Weight); % PC = matrix of all possible paths
dimPath = size(path);
dx=LP(1)-FP(1);
dy=LP(2)-FP(2);
if dx>0 && dx/dy>0 % Constraints of orientation
NumberPath = NumberPath+1;
if (cost<55) % Constraints of Cost
for p=1:dimPath(2)
FR(PC(path(1,p),2),PC(path(1,p),1))=NumberPath;
% FR=Matrix 500x500 with all paths according to conditions
Cost(i,j)=cost; % Matrix of all cost < 55
P(NumberPath,:)=FP; % Starting Point of each path
L(NumberPath,:)=LP; % End Point of each path
end
end
end
end