Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

OpenCV käyttö on myös mahdollista Qt:lla tehdyissä käyttöliittymissä, tämä helpoittaa laadukkaan käyttöliittymän luomisessa. Joitakin asioita on kuitenkin otettava huomioon, kuten reaaliaikasen kuvan käsittely ja kuvan näyttäminen. OpenCV esimerkeissä reaaliaikaista kuvaa tai videota käsitellessä ohjelma jätetään pyörimään While looppiin, joka ei ole mahdollista Qt:n kanssa ja ohjelma kaatuu. 

Reaaliaikainen kuva

Qt:n kanssa reaaliaikaista voidaan kuitenkin käyttää QTimer ajastimella tai vaihtoehtoisesti aina kun kuva on käsitelty lähetetään signaali että ladataan uusi kuva. Seuraavassa esimerkissä on esitettynä kuinka QTimeria käytetään kuvan lukemiseen.

...

 timer=new QTimer(this); //timerin luonti
 connect(timer,SIGNAL(timeout()),this,SLOT(getFrame())); //Timerin timeout signaalin yhdistäminen uuden kuvan lukemiseen
 timer->start(50);//Ajastimen käynnistys ja timeout() viive millisekunteina

Kuvan näyttäminen

Kuvan voidaan näyttää Qt käyttöliittymässä lukemalla kuva OpenCV:n Mat datasta kuva QImage muotoon, jolloin kuva voidaan piirtää Qt-käyttöliittymään. OpenCV lataa kuvat oletuksena BGR väriformaatilla, kun Qt taas käyttää oletuksena RGB väriformaattia. Kuva tulee muuttaa RGB muotoon, jotta se näkyy oikein. Seuraavassa esimerkkikoodissa on esitettynä kuvan lukeminen Mat datasta QImage dataan.

...