我在手绘图像中进行图形匹配的项目,我想用图表表示给定的单词图像,使用下面的算法
Algorithm:
input: Binary image B, Grid width w, Grid height h
Output: Graph g = (V, E) with nodes V and edges E
1: function Grid(B,w,h)
2: for i ← 1 to number of columns C = Width of B/w do
3: for j ← 1 to number of rows R = Height of B/h do
4: V = V ∪ {(xm, ym) | (xm, ym) is the centre of mass of segment sij}
5: for Each pair of nodes (u, v) ∈ V × V do
6: E = E ∪ (u, v) if associated segments are connected by NNA, MST, or DEL
7: return g
我已经找到使用这个的质量中心在绘制点之后绘制点我不知道如何使用最小生成树approch添加边缘
这是我的代码
clc;
clear all;
close all;
X=imread('i2.jpg');
imfinfo('i2.jpg')
figure,imshow(X)
b = imresize(X,[100,100]);
si = size(b,1);
sj = size(b,2);
figure;imshow(b);
% Binarization
th = graythresh(b);
I = im2bw(b,th);
w = 10;
h = 10;
c=si/w;
r=sj/h;
kl=bwmorph(~I,'thin',inf);
figure,imshow(kl)
R(:,:)=kl(:,:);
I=1;
U1=w;
J=1;
U2=h;
E=1;
for i=1:r
for j=1:c
B(I:U1,J:U2)=R(I:U1,J:U2);
[x,y]=find(B==1);
CX=mean(x);
CY=mean(y);
CXX(E)=CX
CYY(E)=CY
T(I:U1,J:U2)=B(I:U1,J:U2);
J=J+w;
U2=U2+h;
E=E+1;
clear B x y
end
I=I+w;
U1=U1+h;
J=1;
U2=h;
end
imshow(R)
hold on
hold on
plot(CYY,CXX,'.c')
hold off
% CXX(isnan(CXX)) = [];
% CYY(isnan(CYY)) = [];
r = imread('empty.jpg');
n = imresize(r,[100,100]);
figure,imshow(n);
hold on
hold on
plot(CYY,CXX,'.k')
hold off
我使用CXX
和CYY
值进行绘图我不知道如何使用最小生成树方法将边添加到绘制点,请给我一些代码,它将帮助我完成项目< / p>
答案 0 :(得分:0)
Hard to tell from your question, but I'm assuming you want to represent a graph where all nodes are at coordinates [CXX,CYY]
and the weight matrix is the distance between node i
and node j
You can generate an adjacency matrix with pdist2()
A = pdist2([CXX,CYY],[CXX,CYY]);
Build a graph based A
(note that this graph carries no information about original location, only distances)
G = graph(A,...);
Determine the MST for G
T = minspantree(G);
T.Edges
will be a table of nodes i
and k
that are included in the MST, as well as their distance weight. You can use graph functions to visualize this, although it will only factor distance vectors, not original coordinate locations