21.07.2013 Views

Detektering og klassificering af kimplanter ved brug af computer vision

Detektering og klassificering af kimplanter ved brug af computer vision

Detektering og klassificering af kimplanter ved brug af computer vision

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

18 Appendiks 18.9 Implementering<br />

række nøgleord initialiseres. I filen står der efter hvert <strong>af</strong> disse nøgleord et kolon <strong>og</strong> derefter den<br />

tilhørende værdi:<br />

void Quality::getParametersFromFile(void)<br />

{<br />

string line, sub;<br />

int i = 0;<br />

size_t offset1, offset2;<br />

char *search0 = "#";<br />

char *search1 = "areaLow";<br />

char *search2 = "areaHigh";<br />

char *search3 = "symmetryLow";<br />

char *search4 = "symmetryHigh";<br />

char *search5 = "eccentricityLow";<br />

char *search6 = "eccentricityHigh";<br />

char *search7 = "expandShrinkLow";<br />

char *search8 = "expandShrinkHigh";<br />

char *search9 = "selectionModel";<br />

char *colon = ":";<br />

…<br />

Herefter hentes ”settings.ini” <strong>og</strong> det kontrolleres om den er åben. Hvis den er det, <strong>af</strong>vikles nu et<br />

while-loop, der kører så længe enden i filen ikke er nået. I loopet læses filen ind linie for linie. Det<br />

første der kontrolleres er om linien indeholder et # (search0) tegn. Er dette tilfældet, springes linien<br />

over, da dette betyder udkommentering, ellers kontrolleres det om et <strong>af</strong> de andre nøgleord er<br />

indeholdt i linien. Findes et <strong>af</strong> dem, overføres værdien til den respektive variabel i pr<strong>og</strong>rammet:<br />

…<br />

ifstream infile("settings.ini");<br />

if(infile.is_open())<br />

{<br />

while(infile.good())<br />

{<br />

getline(infile,line);<br />

if(line.find(search0, 0) == string::npos)<br />

{<br />

if (offset1 = line.find(search1, 0) != string::npos)<br />

{<br />

offset2 = line.find(colon, offset1);<br />

sub = line.substr((long)offset2+1);<br />

std::istringstream strin(sub);<br />

strin >> areaLow;<br />

}<br />

…<br />

På denne måde fortsættes der for alle variablerne, der skal indlæses. Herefter kontrolleres det om alle<br />

variable er blevet hentet ind fra filen, <strong>og</strong> der udskrives en fejlmeddelelse, hvis en <strong>af</strong> dem ikke er. Som<br />

eksempel angives areaLow, men proceduren er ens for alle variablerne:<br />

…<br />

}<br />

}<br />

if(areaLow == PARAMETER_NOT_SPECIFIED)<br />

{<br />

cout

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!