Arhiv za June, 2010

35/35

URG: 3.vaja: Simulator treninga (projektno delo, iCycle)

Avtor: Ali Gator | 07 June 2010 | Ni ni komentarjev
Kategorija: URG

Navodilo:

1. Ustvarite spletno aplikacijo, ki bo omogočala prikaz zemljevida ter kolesarskih poti na zemljevidu. Za prikaz zemljevida na spletni strani uporabite knjižnico OpenLayers (http://openlayers.org). Za zemljevid lahko uporabite Google Maps. Kolesarko pot sestavite s pomočjo koordinat GPS, s katerimi tvorite lomljenko, katero tudi prikažete na spletni strani. Zemljevid centrirajte na Slovenijo (15.0, 46.0).

Nastavite naslednje atribute:

Prikazano območje: (-20037508.34,-20037508.34,20037508.34,20037508.34)

Projekcija karte: EPSG:900913 (google maps)

Projekcija prikaza: EPSG:4326 (zapis GPS)

Pretvorba projekcije:

reproject = function(x,y)

{

var point = new OpenLayers.LonLat(x,y).transform(

new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913"));

return point;

}

2. Dodajte možnost vnašanja poti z uporabo OL kontrol za risanje (http://openlayers.org/dev/examples/draw-feature.html) ter izris že obstoječih poti z lomljenkami. Obstoječe poti naj bodo zaenkrat podane v nizih (“x1,y1“, “x2,y2“,…,”xnyn“), katere tvorite sami. Z zapis poti v OL uporabite OpenLayers.Geometry.LineString, v katere vnesete točke poti. Vse točke morate projicirati v projekcijo EPSG:900913 (funkcija reproject). Primer risanja najdete na povezavi. Upoštevajte, da funkcija reproject vrača rezultat v strukturi OpenLayers.LonLat, za tvorjenje geometrije pa morate pretvoriti v strukturoOpenLayers.Geometry.Point.

3. Ustvarite strukturo za zapis geografske točke. Struktura naj vsebuje zemljepisno širino in dolžino, nadmorsko višino ter časovno značko. Kolesarske poti lahko zapišete kot polje točk. Strukturo bomo uporabljali za animacijo ter za izračune poti.
Napišite funkcijo za pretvorbo kolesarske poti z vaše strukture v strukturo, katero lahko prikažete v OpenLayers (vector). V spletni aplikaciji omogočite prikaz različnih kolesarskih poti (dodajte nov sloj za vsako kolesarsko pot), vsako kolesarsko pot pa prikažite v drugi barvi.
Pripravite si tudi funkcije za računanje dolžine poti, dolžino vzpona in spusta, višinsko razliko ter povprečno hitrost celotne prevožene poti ter posameznih odsekov kolesarske poti.

4. Ustvarite “umetne” zapise kolesarskih poti in zapisov GPS. Prikažite animacijo vožnje kolesarjev (zapis GPS) po kolesarskih poteh. Na spletni strani naj bo možno izbrati kolesarsko pot (in kolesarje, ki so vozili po izbrani poti). Vožnjo kolesarja prikažite kot točko, ki se premika po kolesarski poti, vsak kolesar naj bo prikazan z drugačno barvo.

Izpišite podatke o dolžini poti, dolžinah vzopona, spusta, višinske razlike, povprečno hitrost kolesarja, ter trenutno hitrost kolesarja (glede na položaj).

Pri izbiri kolesarske poti se zemljevid samodejno poveča (zoomira) na kolesarsko pot z majhnim odmikom na vsaki strani. Dodajte gumbke za začetek in konec animacije ter spustne menuje za izbiro kolesarske poti in voženj.

Pri animaciji uskladite položaj kolesarja s kolesarsko potjo – se pravi v primeru odstopanja kolesarja popravite njegov položaj da se bo ujemal s kolesarsko potjo. Označite tudi, če kolesar preveč zaide s predpisane poti (izberite toleranco npr. 5m, 10m, 15m) in to tudi označite.

>> Poglej rešitev <<


10/10

SA: N15: Odjemalec-strežnik z uporabo niti (Thread)

Avtor: Ali Gator | 07 June 2010 | Ni ni komentarjev
Kategorija: SA

Navodila:

S pomočjo aplikacijskega vmesnika Winsock API napišite program odjemalec/strežnik, ki bo odjemalcu prek protokola Telnet omogočal prijavo na strežnik in uporabo naslednjih ukazov:

Strežnik naj se javi s sporočilom »Telnet Server>« (angl. Prompt). Nalogo izvajamo v treh fazah, ki trajajo po teden dni:

Faze preverjamo tedensko, t.j. na začetku vsake vaje.

Pomagajte si z naslednjimi povezavami:

www.sockets.com/winsock.htm

http://msdn.microsoft.com/en-us/library/ms740673%28VS.85%29.aspx
http://en.wikipedia.org/wiki/Winsock

>> Poglej rešitev <<


10/10

SA: N14: Osnovna aplikacija strežnik-odjemalec

Avtor: Ali Gator | 07 June 2010 | Ni ni komentarjev
Kategorija: SA

Navodila:

S pomočjo aplikacijskega vmesnika Winsock API napišite program odjemalec/strežnik, ki bo odjemalcu prek protokola Telnet omogočal prijavo na strežnik in uporabo naslednjih ukazov:

Strežnik naj se javi s sporočilom »Telnet Server>« (angl. Prompt). Nalogo izvajamo v treh fazah, ki trajajo po teden dni:

Faze preverjamo tedensko, t.j. na začetku vsake vaje.

Pomagajte si z naslednjimi povezavami:

www.sockets.com/winsock.htm
http://msdn.microsoft.com/en-us/library/ms740673%28VS.85%29.aspx
http://en.wikipedia.org/wiki/Winsock

>> Poglej rešitev <<


7/7

SIS: 15. Vaja: Pragovna segmentacija

Avtor: Ali Gator | 01 June 2010 | Ni ni komentarjev
Kategorija: SIS

Pragovna segmentacija (treshold) je najpreprostejša segmentacijska metoda, s katero želimo ločiti objekte na sliki od ozadja. Pri tej pragovni segmentaciji se pripadnost posamezne točke določi s pomočjo praga. Če bi imeli prag 80, bi točka s sivino 75 predstavljala objekt, točka s sivino 90 pa ozadje (če bi bilo ozadje svetlejše od objekta). Pragovna operacija ima lahko globalni prag (prag je enak za vse točke), prag pa je lahko tudi variabilen (prag se razlikuje od točke od točke). Da točka predstavlja ozadje predstavimo z vrednostjo 0, če pa predstavlja objekt naj bo njena vrednost 1.

Seveda za pragovno operacijo niso primerne vse slike. Najbolje se obnesejo slike, ki imajo v histogramu dva med seboj jasno ločena vrha, kjer prvi vrh predstavlja objekt, drugi pa ozadje. Prag v takem primeru postavimo v dolino med vrhoma.

Avtomatsko določanje praga

V gornjem primeru smo prag postavili ročno, kar je za uporabo dokaj nepraktično. K sreči obstajajo metode in algoritmi, ki prag postavijo sami. Primer takega algoritma lahko najdemo tudi v knjigi Digital Image Processing: a practical introduction using Java, str. 255. Algoritem je iterativen in je z vsakim korakom bližji optimalnemu pragu. Algoritem predpostavlja,da robne točke algoritma predstavljajo ozadje.

Navodilo:

Implementirajte algoritem za avtomatsko določanje praga function prag=avtomatski_prag(slika), kjer funkcija izračuna prag za vhodno sliko. Predpostavite, da je vhodna slika že sivinska.

>> Poglej rešitev <<


Arhiv

Oblak

 

rss

Vsevedno okno

Kategorije

Nekaj za preživetje:

Blogroll