Maa-57.301 Fotogrammetrian yleiskurssi (3 op)
Matlab-ohjelmointiosuus / Matlab programming
(English version is in the exercise paper. Just download the files...)
Harjoituksen ohjelmointiosuudessa täydennetään annettua Matlab-ohjelmaa
tarvittavilla aliohjelmilla. Valmis ohjelma suorittaa keskinäisen orientoinnin
kuvaliitosmenetelmällä koplanariteettiehtoa käyttäen.
Harjoituksessa tehdään siis ainoastaan(!) seuraavat puuttuvat aliohjelmat:
- form.m - aliohjelma muodostaa yhtälöryhmän rakennematriisin ja havaintovektorin
- test.m - aliohjelma testaa iteraation päättymisen
- compute.m - aliohjelma laskee jäännösvirheet ja painoyksikön keskivirheen
Nämä m-päätteiset ns. script-tiedostot on luotu valmiiksi ja niiden sisältämät
parametrit on annettu valmiina. Niistä puuttuu kuitenkin varsinainen
Matlab-komentokielinen koodi, joka siis tehdään tässä harjoituksessa. Haluttaessa funktioiden parametrien nimet voi vaihtaa, mutta tällöin on muistettava säilyttään niiden järjestys ja dimensiot. Pääohjelma ja muut tarvittavat funktiot (myös aliohjelmien kutsumat) ovat valmiina ja niitä ei siis tarvitse muuttaa.
Harjoitus tehdään Matlabilla. Matlab on käytettävissä esimerkiksi TKK:n laskentakeskuksen
koneilla. Mikäli Matlab ei ole täysin tuttu kannattaa tutustua esimerkiksi kirjaseen
Simo Kivelä: "Matlab-opas" (myynnissä TKK:n päärakennuksen kirjakaupassa).
Harjoituksessa tarvittava lähtöaineisto on saatavissa www-sivujen kautta.
Mikäli harjoituksen materiaalin hakemisessa ja tallettamisessa www-sivujen kautta,
on ongelmia, ottanette heti yhteyttä.HUOM: Ohjelmoinnissa (form.m aliohjelmassa) tarvitaan kollineaarisuusehdon osittaisderivaattoja tuntemattomien parametrien suhteen. Näin ollen
linearisointiharjoitus on syytä tehdä ensin!
Lähtöaineisto / Downloads
Alkuperäisen Matlab-ohjelman kahden kuvan keskinäistä orientointia varten on
tehnyt Ilkka Niini.
Harjoituksen suorittamista varten tarvitset seuraavat tiedostot.
Saat ne itsellesi esimerkiksi näpäyttämällä kutakin "linkkiä" eli tiedoston nimiä ja tallettamalla ne sitten Save as -komennolla selaimessasi. "relor.mat"-tiedosto näyttää ainakin itselläni tyhjältä netscapessa katsottuna(binääritiedosto), mutta toimii oikein tallennettuna em. komennolla relor.mat-nimiseksi tiedostoksi. Ohjelmien nimet ovat maksimissaan 8 merkkiä pitkiä, jotta ne toimivat varmasti kaikissa järjestelmissä.
Kopioi kaikki seuraavat tiedostot (download all following files):
- Pääohjelma (main program): relor.m
- Valmiit aliohjelmat (pre-written subroutines - do not modify):
readdata.m,
init_par.m,
cholde.m,
comp_ter.m,
coplanar.m,
update_p.m
output.m,
process.m,
nmagic.m,
rotate.m,
rotmat.m,
- Itsetehtävien aliohjelmien rungot (programmable subroutine templates):
form.m,
test.m,
compute.m
- Kuvahavainnot ja projektiparametrit (image observations and other parameters, binary file): relor.mat
Ohjeita harjoituksen tekemisestä
Sinun tehtäväksesi tarkoitettujen funktioiden rungot on annettu valmiina parametrilistoineen. Annettu numeroaineisto (kuvahavainnot, projektiparametrit) on periaatteessa sinulta näkymättömissä ja pääohjelma lukee sen automaattisesti muistiin. Voit tehdä sopivia välitulosteita omiin funktioihisi, jos haluat nähdä mitä arvoja parametreilla ja havainnoilla kulloinkin on. Mikäli jätät puolipisteen pois ohjelmarivin lopusta, Matlab tulostaa muuttujien arvot. Välitulosteita ei valmiissa ohjelmassa kuitenkaan välttämättä tarvita, sillä ohjelma tulostaa itse vaadittavat lopputulokset päätteelle sekä 'diary'-tiedostoon.
Tutustu erityisesti relor.m pääohjelman alussa olevaan selostus-osaan, jossa esitellään mm. parametrit!
Muutamia vinkkejä:
Valitse Matlab-komentoikkunan valikko FILE ja hae tiedosto form.m (OPEN-komennolla). Kirjoita oma koodipätkäsi tähän tiedostoon ja talleta tiedosto uudestaan (SAVE-komennolla). (NEW-komento puhdistaa editorin muistin, jonka jälkeen voit hakea uuden tiedoston näytölle.)
Muokkaa myös tiedostot test.m ja compute.m kuntoon.
Aja pääohjelma Matlabin komentoikkunassa komennolla <relor>, jolloin myös omat funktiosi suoritetaan, mikäli ne toimivat oikein.
Jos relor-ohjelma pääsee loppuun asti, se pyytää sinua antamaan oikean etu- ja sukunimesi, joka tulostetaan ohjelman tuottamaan loppuraporttiin DIARY. Tarkista lopputulokset ruudulta.
Kun ohjelma tulostaa mielestäsi järkevän näköisen tuloslistan, niin voit
lopettaa. Ellei, niin toista edelliset vaiheet. Tee samoin, jos ohjelma ei toimi oikein.
Lopeta Matlab.
Tulosta tuottamasi diary-raporttitiedosto
Tulosta itse tekemäsi aliohjelmat
Huomioita
Sinun kannattaa suunnitella funktioittesi rakenne etukäteen. Valmis ohjelma
tuottaa siistin loppuraportin (diary-tiedoston).
Neuvoja voi kysellä tarpeen mukaan. Älä jätä turhaan harjoitusta roikkumaan!!! Alkuun päästyäsi se ei ole niin vaikea kuin näyttää...
Last update: October 12, 2001
katri.koistinen@hut.fi