Video Processing Framework
MatchImg2 Class Reference

#include <Img_MatchImg2.h>

Inheritance diagram for MatchImg2:
AbstractProcessing AbstractData

List of all members.

Public Member Functions

 MatchImg2 (const AbstractData *parent=NULL, const SimpleData *parameters=NULL)
virtual ~MatchImg2 ()
virtual MatchImg2duplicate ()
virtual int processFrame ()
virtual int allocateResults ()
virtual int compareSURFDesc (int modelPtInd, int scenePtInd, double &featuresDistance)
virtual int calcLocationDistance ()
virtual int filterModelPoints ()
 Filtriraj SURF tocke modela, ostanejo samo tiste znotraj maske.
virtual int findPairs ()
 Funkcija vzame dve mnozici SURF tock (in pripadajoce opise) iz dveh slik in najde ujemanja med tockami.
virtual int findTransformation (CvMat *homogMatrix=NULL)
virtual int calcPointsDistance (CvPoint2D32f modelPt)
virtual int calcPtDescrDifference (int modelPtInd)
 Metoda iskanja najblizjih tock.
virtual int calcPredictedLocations (double dx=0.0, double dy=0.0, double scalex=1.0, double scaley=1.0)
virtual int calcPtDistances (int modelPtInd, double maxLocationDist)
 Za eno tocko izracunaj vse kriterije do vseh scene tock : oddaljenost, podobnost okolic.
virtual int calcPtSizes (int minSize=50, int maxSize=100)
 Za eno tocko modela uredi vse tocke scene po velikosti ki so podobne modelni tocki.
CvPoint2D32f calcTransfCoords (CvPoint2D32f inputCoords, CvMat *hM)
 Preracun koordinat s podano homografijo.
virtual int evalCurrentLoopLocation (float &deviationNorm)
 Evaluacija trenutne lokacije v loopu, ki gre preko celotne slike.
virtual int findHomography2 (CvMat *homogMatrix, CvMat **mask=NULL)
 Poisce homografijo iz tock.
virtual int findHomography3 (CvMat *homogMatrix, CvMat **mask)
 Poisce homografijo iz outPairs parov tock - loop ki odstrani najbolj izstopajoce pare iz outPairs.
virtual int findHomography4 (CvMat *homogMatrix, CvMat **mask)
 Ne zmanjsuje tudi image diference !
virtual int findHomography5 (CvMat *homogMatrix, CvMat **mask)
virtual int drawPairs ()
 Narise povezave med pari tock v outputImg.
virtual int drawHomographyImage (CvMat *homogMatrix, const IPLImage *imgP=NULL)
 Narise transform modelne slike na scensko.
virtual int drawPointPredictedLocations (int selectedModelPt)
 Vizualizacija predvidene lokacije, izbrane tocke ter mozni kandidati.
virtual int findTrueHomography ()
 Iskanje prave homografije z uporabo rocno markiranih tock.
virtual int calcHomographyEfficiency ()
 Izracun distanc med pravo homografijo (z uporabo rocno markiranih tock) ter zaznano homografijo (surf detekcija)

Static Public Member Functions

static int runTest (int testCase=0, const char *filen=NULL, void *params=NULL)
 Testna metoda, alocira objekt in pozene vse na default podatkih.
static int testLocation ()
static int testLocation2 ()
static int testLocation3 ()
 Testiranje uporaberocno markiranih tock.
static int testLocation4 ()
 Testiranje uporaberocno markiranih tock.
static int testClouds ()
 Testiranje sat slik oblakov - Klemen.
static int testClouds2 ()
 Testiranje sat slik oblakov avtomatizacija, izpis podatkov - Klemen.
static int testClouds3 ()
 Testiranje sat slik oblakov avtomatizacija, izpis podatkov - Klemen.
static int testClouds4 ()
 Oblaki: generiranje trojk tock.
static int testClouds5Single ()
 19.6.2012
static int showAffineTransform (IplImage *image, IplImage *model, CvPoint2D32f *corners)
 Transformiraj manjso sliko na vecjo - Affine transform.

Public Attributes

IPLImagemodelImage
 Modelna slika.
IPLImagesceneImage
 Scenska slika.
IPLImagemodelMask
 Opcija: Maska za modelno sliko, katere tocke upostevamo.
IPLImageoutHomographyImg
 Slika homografije modelne slike na scenski.
IPLImageoutPairsImg
 Vizualizacija izbrane tocke modela, mozni pari ter predvidena lokacija.
TDSurfPairsoutPairs
 Seznam koncnih parov urejenih po ujemanju okolic.
TDRectoutPoints
 Seznam koncnih tock za posamezni par (x,y - ptOrig.x, ptOrig.y ...... width,height - ptDest.x, ptDest.y )
int outHomographyFound
 Ce je bila prepoznana homografija.
Array1DtDesc
 zacasni array za racunanje s feature descriptions
Array1DtLocIndex
Array1DtLocDist
Array1DtFiltModPts
 Filtrirane (maska) tocke modela.
Array1DtModPtsMask
 Ali upostevamo to tocko modela: ali je znotraj maske (0,1)
Array1DtPredModLoc
 Predvidena lokacija modelnih tock v scene sliki: vrstica 0 so x, 1 y koordinate.
Array1DtPtDist
 Distance ene tocke modela do vseh scene tock.
Array1DtPtSizes
 Polje tock scenske slike urejenih po velikosti ki ustreza modelni sliki.
Array1DtPairMask
 Pari: maska, kateri ustrezajo homografiji.
Array1DtCuPtScene
 Array rocno markiranih tock scena.
Array1DtCuPtModel
 Array rocno markiranih tock model.
Array1DtTransPoints
 Array transformiranih tock z detektirano in pravo homografijo.
TDSurfPairstModelPairs
 Pari za eno modelno tocko.
TDSurfPairstFinalModelPairs
 Pari za vse modelne tocke.
IPLImagetHomogrCheck
 Slika homografije modelne slike na scenski.
FeatSURFDetmSURF
 SURF detektor modelne slike.
FeatSURFDetsSURF
 SURF detektor scenske slike.
ImgCorrelationmImgCorr
 Izracun podobnosti med slikama.
int modelSurfQuality
 Spr. za nastavljanje kvalitete SURF procesiranja.
int sceneSurfQuality
 SPr. za nastavljanje kvalitete SURF procesiranja.
float minPtSize
 Minimum point size za matching.
int ptSizeMin
 Minimalna velikost tocke (spodnja meja intervala)
int ptSizeMax
 Maximalna velikost tocke (zgornja meja intervala)
float pSizeTolerance
 Toleranca velikosti.
float pOrientTolerance
 Toleranca orientacij.
float pPositionTolerance
 Toleranca pozicije okrog sat tocke.
int pTransformCalc
 Tip izracuna robustne tranformacije : 0 (vsi pari), 1, 2 (Ransac), 3 iteraat izlocanje.
int pPercentPairs
 Odstotek izbire parov.
double pMaxPairDistance
 Izbira parov - omejitev max distance.
float pRansacThreshold
 RANSAC odstopanje.
int pLoopSteps
 Koliko korakov zanke: 0 brez.
float pDx
 Dx rocni premik.
float pDy
 Dx rocni premik.
float pDistCoef
 Koeficient, ki doloca upostevanje distSURF ali razdaljo tock (0 - distSURF, 1- razdaljaTock)
int pModelPtVisual
 Izbirnik modelne tocke za prikaz vizualizacije. (Izbiramo med najboljsih 100 tock )
int pUseCustomPoints
 Izbirnik za izbiro uporabe rocno oznacenih tock.
int pDrawTrueHomography
 Izbirnik za izris prave homografije (s pomocjo tock)
std::string cuPtModelFn
 Pot do rocno oznacenih tock modela.
std::string cuPtSceneFn
 Pot do rocno oznacenih tock scene.
CvMat * homography
bool homographyFound
CvMat * detHomog
 Detektirana iz tock.
CvMat * trueHomog
 Prava iz vhodnih parov.

Constructor & Destructor Documentation

MatchImg2::MatchImg2 ( const AbstractData parent = NULL,
const SimpleData parameters = NULL 
)
MatchImg2::~MatchImg2 ( ) [virtual]

Member Function Documentation

int MatchImg2::allocateResults ( ) [virtual]

Reimplemented from AbstractProcessing.

int MatchImg2::calcHomographyEfficiency ( ) [virtual]

Izracun distanc med pravo homografijo (z uporabo rocno markiranih tock) ter zaznano homografijo (surf detekcija)

int MatchImg2::calcLocationDistance ( ) [virtual]

Primerjaj lokacijske podobnosti vseh SURF tock Vrne zacasni rezultat: tLocIndex, tLocDist

int MatchImg2::calcPointsDistance ( CvPoint2D32f  modelPt) [virtual]

Primerjava lokacije dveh tock

int MatchImg2::calcPredictedLocations ( double  dx = 0.0,
double  dy = 0.0,
double  scalex = 1.0,
double  scaley = 1.0 
) [virtual]

Izracunaj predvidene lokacije model tock v scene sliki OUTPUT: tPredModLoc

int MatchImg2::calcPtDescrDifference ( int  modelPtInd) [virtual]

Metoda iskanja najblizjih tock.

Metoda primerjanja najblizjih deskriptorjev Uredi tocke po velikosti

int MatchImg2::calcPtDistances ( int  modelPtInd,
double  maxLocationDist 
) [virtual]

Za eno tocko izracunaj vse kriterije do vseh scene tock : oddaljenost, podobnost okolic.

Za eno tocko modela izrac. vse distance do vseh tock scene OUTPUT: tPtDist

int MatchImg2::calcPtSizes ( int  minSize = 50,
int  maxSize = 100 
) [virtual]

Za eno tocko modela uredi vse tocke scene po velikosti ki so podobne modelni tocki.

CvPoint2D32f MatchImg2::calcTransfCoords ( CvPoint2D32f  inputCoords,
CvMat *  hM 
)

Preracun koordinat s podano homografijo.

int MatchImg2::compareSURFDesc ( int  modelPtInd,
int  scenePtInd,
double &  featuresDistance 
) [virtual]
int MatchImg2::drawHomographyImage ( CvMat *  homogMatrix,
const IPLImage imgP = NULL 
) [virtual]

Narise transform modelne slike na scensko.

int MatchImg2::drawPairs ( ) [virtual]

Narise povezave med pari tock v outputImg.

int MatchImg2::drawPointPredictedLocations ( int  selectedModelPt) [virtual]

Vizualizacija predvidene lokacije, izbrane tocke ter mozni kandidati.

virtual MatchImg2* MatchImg2::duplicate ( ) [inline, virtual]

Reimplemented from AbstractProcessing.

int MatchImg2::evalCurrentLoopLocation ( float &  deviationNorm) [virtual]

Evaluacija trenutne lokacije v loopu, ki gre preko celotne slike.

Funkcija ki izvaja evaluacijo trenutne lokacije (trenutnega koraka) v zanki in vrne najboljso lokacijo Preverjamo najboljso lokacijo z odstevanjem vrednosti pislov, ce so vrednosti podobne (podobne lokacije) bomo dobili najmanjso vrednost razlike in jo zapisali kot bestLocValue. Verzija izracuna najboljsega odmika s pomocjo racunanja evklidske distance med referencno sliko in sliko homografije Pricakujemo, da ze imamo izracunano homografijo!

int MatchImg2::filterModelPoints ( ) [virtual]

Filtriraj SURF tocke modela, ostanejo samo tiste znotraj maske.

int MatchImg2::findHomography2 ( CvMat *  homogMatrix,
CvMat **  mask = NULL 
) [virtual]

Poisce homografijo iz tock.

Poisce homografijo iz outPairs parov tock

int MatchImg2::findHomography3 ( CvMat *  homogMatrix,
CvMat **  mask 
) [virtual]

Poisce homografijo iz outPairs parov tock - loop ki odstrani najbolj izstopajoce pare iz outPairs.

int MatchImg2::findHomography4 ( CvMat *  homogMatrix,
CvMat **  mask 
) [virtual]

Ne zmanjsuje tudi image diference !

Poisce homografijo iz outPairs parov tock - loop ki odstrani najbolj izstopajoce pare iz outPairs

int MatchImg2::findHomography5 ( CvMat *  homogMatrix,
CvMat **  mask 
) [virtual]

Poisce homografijo iz outPairs parov tock - loop ki odstrani najbolj izstopajoce pare iz outPairs 2012-07: V vsakem odstranjevanju preverja, da se vrednost image difference zmanjsa !

int MatchImg2::findPairs ( ) [virtual]

Funkcija vzame dve mnozici SURF tock (in pripadajoce opise) iz dveh slik in najde ujemanja med tockami.

Poisce pare med dvema mnozicama SURF tock

Parameters:
ptpairsvektor najblizjih parov
int MatchImg2::findTransformation ( CvMat *  homogMatrix = NULL) [virtual]

Poisce koncno preslikavo modelne slike input: outPairs seznam parov

int MatchImg2::findTrueHomography ( ) [virtual]

Iskanje prave homografije z uporabo rocno markiranih tock.

int MatchImg2::processFrame ( ) [virtual]

Reimplemented from AbstractProcessing.

int MatchImg2::runTest ( int  testCase = 0,
const char *  filen = NULL,
void *  params = NULL 
) [static]

Testna metoda, alocira objekt in pozene vse na default podatkih.

int MatchImg2::showAffineTransform ( IplImage *  image,
IplImage *  model,
CvPoint2D32f *  corners 
) [static]

Transformiraj manjso sliko na vecjo - Affine transform.

Naredi affine transform modelne slike na scensko sliko.

int MatchImg2::testClouds ( ) [static]

Testiranje sat slik oblakov - Klemen.

int MatchImg2::testClouds2 ( ) [static]

Testiranje sat slik oblakov avtomatizacija, izpis podatkov - Klemen.

int MatchImg2::testClouds3 ( ) [static]

Testiranje sat slik oblakov avtomatizacija, izpis podatkov - Klemen.

Testiranje.

int MatchImg2::testClouds4 ( ) [static]

Oblaki: generiranje trojk tock.

19.6.2012

int MatchImg2::testClouds5Single ( ) [static]

19.6.2012

int MatchImg2::testLocation ( ) [static]
int MatchImg2::testLocation2 ( ) [static]
int MatchImg2::testLocation3 ( ) [static]

Testiranje uporaberocno markiranih tock.

int MatchImg2::testLocation4 ( ) [static]

Testiranje uporaberocno markiranih tock.


Member Data Documentation

Pot do rocno oznacenih tock modela.

Pot do rocno oznacenih tock scene.

Detektirana iz tock.

Izracun podobnosti med slikama.

Minimum point size za matching.

Opcija: Maska za modelno sliko, katere tocke upostevamo.

Spr. za nastavljanje kvalitete SURF procesiranja.

SURF detektor modelne slike.

Ce je bila prepoznana homografija.

Slika homografije modelne slike na scenski.

Seznam koncnih parov urejenih po ujemanju okolic.

Vizualizacija izbrane tocke modela, mozni pari ter predvidena lokacija.

Seznam koncnih tock za posamezni par (x,y - ptOrig.x, ptOrig.y ...... width,height - ptDest.x, ptDest.y )

Koeficient, ki doloca upostevanje distSURF ali razdaljo tock (0 - distSURF, 1- razdaljaTock)

Izbirnik za izris prave homografije (s pomocjo tock)

Dx rocni premik.

Dx rocni premik.

Koliko korakov zanke: 0 brez.

Izbira parov - omejitev max distance.

Izbirnik modelne tocke za prikaz vizualizacije. (Izbiramo med najboljsih 100 tock )

Toleranca orientacij.

Odstotek izbire parov.

Toleranca pozicije okrog sat tocke.

RANSAC odstopanje.

Toleranca velikosti.

Tip izracuna robustne tranformacije : 0 (vsi pari), 1, 2 (Ransac), 3 iteraat izlocanje.

Maximalna velikost tocke (zgornja meja intervala)

Minimalna velikost tocke (spodnja meja intervala)

Izbirnik za izbiro uporabe rocno oznacenih tock.

SPr. za nastavljanje kvalitete SURF procesiranja.

SURF detektor scenske slike.

Array rocno markiranih tock model.

Array rocno markiranih tock scena.

zacasni array za racunanje s feature descriptions

Filtrirane (maska) tocke modela.

Pari za vse modelne tocke.

Slika homografije modelne slike na scenski.

Polje za podobnost lokacij: Vrstice pripadajo posamezni model tocki V vrstici so oddaljenosti scene tock, ki so najblizje: tocka na x=0 je najblizja

Polje za podobnost lokacij: Vrstice pripadajo posamezni model tocki V vrstici so indeksi scene tock, ki so najblizje: tocka na x=0 je najblizja

Pari za eno modelno tocko.

Ali upostevamo to tocko modela: ali je znotraj maske (0,1)

Pari: maska, kateri ustrezajo homografiji.

Predvidena lokacija modelnih tock v scene sliki: vrstica 0 so x, 1 y koordinate.

Distance ene tocke modela do vseh scene tock.

Polje tock scenske slike urejenih po velikosti ki ustreza modelni sliki.

Prava iz vhodnih parov.

Array transformiranih tock z detektirano in pravo homografijo.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines