28
PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA

PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

  • Upload
    vudat

  • View
    232

  • Download
    2

Embed Size (px)

Citation preview

Page 1: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

PROGRAMSKI PAKET LabVIEW

AKVIZICIJA SLIKA

Page 2: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

Predstavljanje slike u LabVIEW

Page 3: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

Predstavljanje slike u LabVIEW

Page 4: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

Predstavljanje slike u LabVIEW• Slika mora biti memorijski poravnata (alingment), odnosno širina linije (Line Width)

mora biti deljiva sa 32.• Memorijsko poravnanje omogućuva značajno brže izvršavanje algoritama.• Ivica (Border) predstavlja piksele van slike koje je potrebno koristiti prilikom

izvršavanja različiti operacija nad slikom (npr. konvolucija, morfološke operacije, itd). Default vrednost je 3, što omogućava primenu filtara do 7x7 piksela. U slučaju da su dimenzije filtra veće od definisane ivice LV će prijaviti grešku.

• Npr: ako su dimenzije 8-bitne crnobele slike 256x256, a širina ivice (Border size) 3, širina linije iznosi 288 (prvi veći broj od 3+256+3 deljiv sa 32), pa slika u LV zauzima288x(3+256+3) = 75456 bajta.

• U memoriji računara slika se predstavlja 1D nizom, tako što se početak reda “lepi“ na kraj prethodnog reda.

Page 5: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

Image Control and Image Display• Vision » Image Display. • Služi za prikazivanje slika.

Image Control – samo prikazuje ime koje LV interno koristi za mapirenje memorije u koju se smešta slika. Ime koje kontrola prikazuje može se posmatrati kao pointer na sliku.

Page 6: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

Image Management VIs• Paleta Vision and Motion » Vision Utilities » Image Managament.

IMAQ Create – rezerviše se memorijska lokacija za sliku. Svaka slika mora imati jedinstveno ime. Ime slike “Nova Slika“ se može posmatrati kao pokazivač na struktura sa informacijama o slici (tip, dimenzije, širina linije, širina ivice,.., i najvažnije memorijska adresa prvog piksela slike. Ukoliko bi dve slike imale isto ime, pokazivale bi na isti memorijski prostor.

Ista slika, iako su imena indikatora različita.

Ista slika, jer su ista imena slika.

Page 7: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

Image Management VIs• IMAQ Create – neophodno pozvati ovu funkciju pre bilo kog rada sa slikom, jer se

mora se rezervisati memorijski prostor. Veličina memorijskog prostora nije još uvek definisa, i određuje se veličinom slike koja se smešta u rezervisani memorijski prostor.

Oslobađanje bufera rezervisanog za sliku.

• IMAQ GetImagePixelPtr – Omogućava dobijanje vrednosti (uint32 ili uint64) memorijske lokacije gde se nalazi prvi piksel u slici, što se dalje može upotrebiti za realizaciju eksternih funkcije za obradu slike u C/C++ i njenim pozivom iz LV kao funkciju u dll-u.

Napomena: pri radu sa eksternim funkcijama poželjno je raditi sa slikom za koju je Border Size = 0 i gde je širina slike (Width) deljiva sa 32 kako bi LineWidth = Width.

p = PixelPtr;

Image_x_y = p[x*PixelSize+LineWidth*Pixel Size*y]

DODATNO

Page 8: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

VIs za rad sa slikom (bez obrade)• IMAQ ReadFile i IMAQ Write File 2 – paleta Vision and Motion » Vision Utilities » File za

otvarane slike u standardnim formatima (BMP, JPEG, PNG, TIFF) i snimanje slike na disk (sve funkcije na paleti File su deo NI-IMAQ).

AVI - subpaleta paleta File (deo NI-IMAQ).

Vision and Motion » Vision Utilities » External Display paleta (deo NI-IMAQ) – iscrtavanje novog run-time prozora za prikaz slike.

Vision and Motion » Vision Utilities » Overlay paleta (deo NI-IMAQ) – iscrtavanje geometrijskih tela na Display kontroli bez menjanja vrednosti same slike.

Vision and Motion » Vision Utilities » Pixel Manipulation paleta – izdvajanje/zadavanje jednog ili grupe piksela, dodavanje teksa u slici, i konvertovanje slike u niz i obrnuto. Samo IMAQ ImageToArray i IMAQ ArrayToImage su deo NI-IMAQ.

Vision and Motion » Vision Utilities » Color Utilites paleta - izdvajanje/zadavanje jednog ili grupe piksela, izdvajanje/zamena kolor ravni, konvertovanje iz jednog kolor sistema u drugi, itd. Samo IMAQ ColorImageToArray i IMAQ ArrayToColorImage su deo NI-IMAQ.

Page 9: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

NI Vision i NI Vision Acquisition Software (VAS)

• NI-IMAQ je besplatna biblioteka (za razliku od NI-IMAQdx i NI-Vision) koja omogućava akviziciju sa određenih uređaja, prikaz i snimanje/čitanje slika.

• Podržani uređaji:– National Instruments Camera Link Frame Grabbers,– National Instruments Parallel Digital Frame Grabbers,– National Instruments Analog Frame Grabbers,– National Instruments 17xx Smart Cameras.

• NI-IMAQdx biblioteka podržava sledeće uređaje:– Gigabit Ethernet Cameras Supporting GigE Vision– FireWire IEEE 1394 Cameras– USB 2.0 Cameras Supporting Microsoft DirectShow– USB 3.0 Cameras Supporting USB3 Vision

• NI-IMAQdx nije besplatna, a za distribuciju aplikacije je potrebna Run-Time licenca. Uz NI frame grabbers isporučuje se besplatno.

• NI Vision je biblioteka za obradu i analizu slika (Machine Vision). Nije besplatna, a za distribuciju aplikacije je potrebna Run-Time licenca.

Page 10: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

Pregled i podešavanje kamera iz MAX-a

Dostupne kamere

Ime kamera (pre : ) kojim se referencira iz LV (cam1, cam6).

Paremetri rada kamere koji se mogu menjati i iz LV.

Page 11: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

Pregled i podešavanje kamera iz MAX-a

Tab sa informacijama o kameri.

Kamera sa može referencirati i na osnovu Serial Number, što je sigurniji način, ali ne dozvoljava zamenu kamere.

Tab sa paremetrima ACQ (zavisi od tipa kamere).

Zadavanje Video Mode – za USB2.0 i firewire kamere

Definisanje RoI – Region of Interest.

Zadavanje Packet Size (zavisi od tipa kamere) – u pitanju izohroni prenos – paketi su iste veličine i zagarantovan je interval između dva paketa što omogućava definisanje fps – frame per packet.

Page 12: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

Image ACQ in LV

• Akviziciju i obrada slika moguće je izvršiti korišćenjem dva wizard-a – Vision Acquisition Express VI i Vision Assistant Express VI.

Izbor kamere.

Page 13: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

Image ACQ in LV• Izbor tipa akvizicije.

Page 14: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

Image ACQ in LV• Izbor Video Mode i način podešavanja dostupnih atributa.

Page 15: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

Image ACQ in LVIzbor kontrola/indikatora za promenu/pregle dostupnih atributa kamera i upravljane akvizicijom.

Page 16: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

Image ACQ in LV

Page 17: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

Podešavanje parametara kamere• Podešavanje parametara kamere iz MAX-a čuvaju se u konfiguracionom fajlu sa

nazivom [ime kamere iz MAX-a.icd] koji se nalazi na lokaciji:? C:\Users\Public\Documents\National Instruments\NI-IMAQdx\Data

• Promena parametara rada kamere se može ostvariti na dva načina:1. Direktno iz MAX-a. LV koristi podatke iz .icd fajla.

Preporuka: Buffer Count = Number of Cameras + 2

Next – čeka se kraj tekuće akvizicije.

Last – poslednja završena akvizicija.

Page 18: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

Podešavanje parametara kamere• Promena parametara rada kamere se može ostvariti na dva načina:

1. Direktno iz MAX-a.• Problem može nastati ako za svakog korisnika računara definiše posebna kopija

foldera u kome MAX čuva kofiguracione fajlove. Rešenje: nakon podešavanja kopirata .icd fajl u folder u kome se nalazi VI i poziv funkcije IMAQdx Read Attributes.

Pre Configure Camera, jer se pojedini parametri mogu menjati samo pre početka akvizicije.

Page 19: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

Podešavanje parametara kamere• Parametri koji počinju sa AcquisitionAttributes, ako je dozvoljeno, mogu se menjati

samo pre konfigurisanja akvizicije, a parametri koji počinju sa CameraAttributes i u toku same akvizicije.

Page 20: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

Podešavanje parametara kamere• Promena parametara rada kamere se može ostvariti na dva načina:

2. Iz LabVIEW-a, a čuvanje i učitavnje promenjenih vrednosti ostvaruje se korišćenjem funkcija IMAQdx Write Attributes i IMAQdx Read Attributes.

Da se ne bi prijavila greška pri prvom pozivu funkcije kada fajl, možda, još nije kreiran.

Pre poziva funkcije IMAQdx Write Attributes akvizicija se mora zaustaviti i izvšiti uncofigure kamere.

Page 21: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

Podešavanje parametara kamere• Promena parametara rada kamere se može ostvariti na dva načina:

2. Iz LabVIEW-a.

Atribut može biti različitog tipa (U32, I64, DBL, Bool, String, Enum) i svi osim Enum se mogu prikazati pomoću String

kontrole.

Ako je Enum, Stringkontrola je Disabled i obrnuto.

Taster Set je Disabled ako je atribut nije Writable.

Sve se postavlja programski.

Page 22: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

Podešavanje parametara kamere• Promena parametara rada kamere se može ostvariti na dva načina:

2. Iz LabVIEW-a.

Vraća niz Cluster-a koji sadrži podatke o svim atributima kamere.

For petljom formira se niz koji sadrži samo imena atributa kamere.

Imena atributa kamere se upisuju u niz Ring kontrole Attribute Name, a trenutno se prikazuje prvi atribut u nizu.

Page 23: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

Podešavanje parametara kamere• Promena parametara rada kamere se može ostvariti na dva načina:

2. Iz LabVIEW-a.

Korisnik je izabrao drugu vrednost kontrole Attribute Name.

Ispituje se da li je izabrani atribut Writablei kog je tipa.

U zavisnosti od tipa atributa, vrednost atributa se unosi ili u Enum ili String kontrolu Attribute Value, dok druga postaje Disabled and Gray

Page 24: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

Podešavanje parametara kamere• Promena parametara rada kamere se može ostvariti na dva načina:

2. Iz LabVIEW-a.

Korisnik je aktivirao taster Set.

Ispituje se kog je tipa izabrani atribut.

U zavisnosti od tipa atributa, podešava se atribut kamere.

Za sve tipove osim Enum, nova vrednost atributa se postavlja pomoću String. Ukoliko nije dobro uneta vrednost atributa, vraća se vrednost atributa pre pokušaja promene.

Page 25: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

Podešavanje parametara kamere• Za najčešće aplikacije, većina parametara kamere se podešava samo jednom, dok se

samo pojedini parametri podešavaju u toku rada aplikacije (Gain, ExposureTime i slično).

• U zavisnosti od modela kamere, mogu se razlikovati i imena atributa, kao i tip podatka pridružen atributu, što se može ostvariti iz LabVIEW-a:

– Sva imena atributa se dobijaju korišćenjem funkcije IMAQdx EnumerateAttributures.

– Funkcija IMAQdx Enumerate Attributures vraća niz Cluster-a, a svaki Cluster pored imena atributa sadrži i tip podatka U32, I64, DBL, String, Enum, Bool.

– Iz liste atributa izabrati potrebne atribute.– Svakom izabranom atributu dodeli kontrolu koja odgovara tipu podatka atributa.– Za svaki atribut moguće je očitati interval vrednosti atributa.

Page 26: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

Sinhornizacija kamere

• Trenutak trigerovanja kamere definisan je nekim spoljašnjim događajem, npr. prolazak boce ispred kamere. Tada, mikroprocesor, PLC ili regulaciona elektronika šalju naponski signal kameri kojim se započinje akvizicija slike.

• Machine vision kamere obično poseduju 1 digitalni ulaz i 1 digitalni izlaz za sinhonizaciju sa spoljašnim događajima.

• Digitalni ulaz (DI): početak akvizicije više slika (start acquisition), početak akvizicije jedne slike (start frame, a ekspozicija može trajati koliko je i sam start frame aktivan), resetovanje brojača slika (frame counter reset). I start acq i start frame se mogu slati istom linijom, pri čemu nakon start acq kamere sama prelazi u mod u kome na DI očekuje triger za start frame. Često se start acq aktivira iz programa, a start frame sa DI.

• Digitalni izlaz (DO) može imati neku od sledećih funkcija: čeka se start acq, čeka se start frame, exposure active omogućava aktiviranje osvetljenja samo u toku ekspozicije, flash window – kod kamera sa rolling shutter-om, timer – signal postaje aktivan nakon definisanog vremene nakon početka ekspozicije i ostaje aktivan definisano vreme.

Page 27: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

Sinhornizacija kamere• Konfigurisanje eksternog trigera može se ostvariti iz MAX-a ili LabVIEW-a

korišćenjem Property Node.

• Ako se ne definiše eksterni triger, nakon pokretanja kontinualne akvizicije, kamera neprekidno šalje slike sa konstatnom brzinom (frame rate ili fps – frames pre second). Fpstada zavisi ili od dužine ekspozicije (jako retko) ili od vremena transfera slike sa senzora u bafer kametr (frame readout) ili vremena prenosa slike iz bafera kamere do računara (transfer time).

• Slika se deli u pakete, a korisnik može definisati veličinu paketa. Svaki paket ima određeno vreme slanja, pa korisnik može veličinom paketa zadati i fps. Veličina paketa se mora zadati pre počekta akvizije. (Ako postoji hadverski triger, najbolje je veličinu paketa postaviti na maksimum).

• Pojedine kamere poseduju i softverski triger.

Page 28: PROGRAMSKI PAKET LabVIEW AKVIZICIJA SLIKA - Nobelnobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/Basic Image... · Pre Configure Camera, jer se pojedini parametri mogu menjati

Akvizijca slika korišćenjem Producer / Consumer Design Pattern-a• Producer petlja vrši akviziciju slika. Nakon akvizicije tekuće slike, rezerviše semafor,

kopira sliku u bafer, šalje notifier i potom oslobađa semafor.• Consumer petlja čeka na notifier, zatim rezerviše semafor, kopira sadržaj iz bafera u

sliku za obradu, oslobađa semafor i potom vrši obradu.• Može povećati broj obrađenih slika u sekundi u odnosu na slučaj jedne petlje.