Használat

Telepítés

MATLAB szükséges a futtatáshoz. A programunkat ki kell csomagolni egy könyvtárba. Majd ugyanabba a könyvtárba léteznie kell egy matgraph könyvtárnak, amiben az extra toolbox található. Ha a toolbox hibát adna:
??? Error using ==> graph.graph at 20
Graph system memory is full; cannot create new graph
akkor a következő parancsokat kell kiadni:
>> graph_destroy();
WARNING: This will delete all graphs and invalidate all graph handles
Are you sure you want to proceed? 1 = YES, 0 = NO --> 1
All graphs destroyed. Start over with graph_init
>> graph_init(100000);
Graph system initialized. Number of slots = 100000.

Indítás

Egy példa bemenetet letölthető innen. Ezt a mappát is csomagoljuk ugyanabba a könyvtárba amibe a .m fájlokat. Ez után indítsuk el a MATLAB-ot és navigáljunk a mappába. A következő parancsot kell kiadni az indításhoz:
[result refimages images] = Process({'ref'}, {'input.png'})
Ezen függvény paraméterei a következők: egy cell array, amiben stringek vannak. Ezek a stringek lehetnek (szinte bármi amit a dir parancs megenged, relatív és abszolút): Az első paraméter a referenciaképek halmaza, a második az osztályozandó képek halmaza. Egy képen lehet több kis kép is, mint az a példában az input.png-n látható.

Eredmény

Az első rész a számítás menetét mutatja, majd az összehasonlítás jön. A végén egy pár példa az eredmények megtekintésére, valamint a következő ablakot is mutatja végeredményként:
ref/A_{sans}.png::1,1 Skeleton -> graph edges
ref/A_{serif}.png::1,1 Skeleton -> graph edges
ref/tegla.png::1,1 Skeleton -> graph edges
ref/A_{sans}.png::1,1 Graph edges -> Subgraphs (6 edges)
  make_gcell
  trimiso_gcell
  trimempty_gcell
ref/A_{serif}.png::1,1 Graph edges -> Subgraphs (12 edges)
  make_gcell
  trimiso_gcell
  trimempty_gcell
ref/tegla.png::1,1 Graph edges -> Subgraphs (2 edges)
  make_gcell
  trimiso_gcell
  trimempty_gcell
input.png::1,1 Skeleton -> graph edges
input.png::1,2 Skeleton -> graph edges
input.png::1,3 Skeleton -> graph edges
input.png::1,4 Skeleton -> graph edges
input.png::1,1 Graph edges -> Subgraphs (2 edges)
  make_gcell
  trimiso_gcell
  trimempty_gcell
input.png::1,2 Graph edges -> Subgraphs (2 edges)
  make_gcell
  trimiso_gcell
  trimempty_gcell
input.png::1,3 Graph edges -> Subgraphs (6 edges)
  make_gcell
  trimiso_gcell
  trimempty_gcell
input.png::1,4 Graph edges -> Subgraphs (12 edges)
  make_gcell
  trimiso_gcell
  trimempty_gcell
input.png::1,1<?>A_{sans} = invmom:0.98; graph:0.10
input.png::1,1<?>A_{serif} = invmom:0.93; graph:0.01
input.png::1,1<?>tegla = invmom:1.00; graph:1.00
input.png::1,2<?>A_{sans} = invmom:0.97; graph:0.10
input.png::1,2<?>A_{serif} = invmom:0.93; graph:0.01
input.png::1,2<?>tegla = invmom:0.99; graph:1.00
input.png::1,3<?>A_{sans} = invmom:0.92; graph:1.00
input.png::1,3<?>A_{serif} = invmom:0.96; graph:0.04
input.png::1,3<?>tegla = invmom:0.90; graph:0.10
input.png::1,4<?>A_{sans} = invmom:0.92; graph:0.04
input.png::1,4<?>A_{serif} = invmom:0.97; graph:1.00
input.png::1,4<?>tegla = invmom:0.91; graph:0.01
result = 
    'FileName'     'Row'    'Column'    'Class'       'Prob'          'Time'  
    'input.png'    [  1]    [     1]    {1x3 cell}    [1x3 double]    [0.3893]
    'input.png'    [  1]    [     2]    {1x3 cell}    [1x3 double]    [0.0832]
    'input.png'    [  1]    [     3]    {1x3 cell}    [1x3 double]    [0.3023]
    'input.png'    [  1]    [     4]    {1x3 cell}    [1x3 double]    [5.9130]
refimages = 
1x3 struct array with fields:
    pixels, column, row, filename, width, height, name, time, invmom, skeledges, subgraphs
images = 
1x4 struct array with fields:
    pixels, column, row, filename, width, height, time, invmom, skeledges, subgraphs,
    matchesByInvmom, matchesByGraph, matches, names, probs
>> 
A visszatérési érték egy táblázat kigyűjtve benne a bementi képeket, valamint az osztályukat és a valószínűségeket, hogy mely osztályba milyen valószínűséggel tartoznak. Az utolsó oszlop a számítási időt mutatja.
refimages a referenciaképek,
images az osztályozandó képek, ahogy azt a program látja.