OpenCV ile GUI Uygulamalar

Eksik/Güncel Olmayan Bilgi Raporla

OpenCV ile  Java GUI Uygulamalar

Uygulamalarda görsellik oldukça önemlidir, geliştirmekte olduğunuz OpenCV projesi müşteri odaklı bir yazılım olabilir ve bu yazılımda yapılan işlemlerin yani işlenen görüntünün, uygulanan filtrelerin veya üzerine çizim yapılan görüntünün anlık olarak kullanıcıya gösterilmesi gerekebilir. Java da GUI (Grafiksel kullanıcı arabirimi) uygulamalar için genellikle swing tercih edilir fakat swing kullanmak zorunda değilsiniz bu bölümde öğreneceklerinizi diğer kütüphaneler ile de kullanabilirsiniz bu konuda bir sınırlama yoktur.

EK BİLGİ: Netbeans kullanıyorsanız ayrıca bir swing kurulumuna ihtiyacınız yoktur projenize new/frame diyerek bir çerçeve ekleyerek tasarım aracını kullanarak grafiksel ara yüzler geliştirebilirsiniz. Eclipse kullanıyorsanız Help menüsünden Install new software.. seçeneğine tıklayarak açılan penceredeki Work with kısmından –All Available Sites– seçiniz, ardından General Purpose Tools seçeneği altından swing bileşenini seçerek kurabilirsiniz.

OpenCV içerisinde GUI işlemleri için bazı sınıflar bulunmaktadır, daha çok C++ geliştiricilerine yönelik olarak eklenen bu sınıflar ve metotlar ile pencere oluşturma ve resim görüntüleme işlemleri yapılabilmektedir. Java ile GUI uygulamalar için çok fazla kütüphaneler olduğu için projelerinizde bunları kullanmanız doğru bir seçim olacaktır zira uygulamalar sadece video oynatmak ve resim görüntülemekten ibaret olmayacaktır.

OpenCV de görüntüleri dijital olarak mat nesneleri içerisinde barındırıyoruz. Bu dijital görüntüyü kullanıcıya göstermek için bu nesne içerisindeki verileri (pikselleri) okuyup, yorumlayıp bir resim haline getirmemiz gerekiyor. Oluşan bu resmi ise bir frame veya panel ile kullanıcıya gösterebiliriz veya okunan görüntüler dosya sistemine yazılır ve Java’daki io sınıfı ile bu görüntü okunarak görüntülenebilir.

Bir örnek yapalım ve kameradan alınan görüntüleri anlık olarak frame üzerinde görüntüleyelim.

Daha önce yaptığımız gibi video aygıtından bir görüntü aldık, anlık olarak akış sağlamak için bu görüntü alma işlemini döngü içerisine aldık bu sayede sürekli olarak video aygıtından görüntü akışı sağlandı. Alınan görüntü mat nesnesinden belleğe alındı ve image olarak dönüştürüldü, bir dönüşüm işlemi yapmadan mat tipi olarak swing veya diğer Java GUI kütüphaneleri bu görüntüyü işleyemezler.

17

Anlık olarak bir görüntü akışı elde ettik. Bu akış bir biri ardına devam eden görüntülerin birleşmesi ile elde edildi ve bu sayede görüntü üzerinde istediğimiz değişikliği yapabiliriz. Daha önce gördüğümüz, görüntü üzerine şekil çizme veya metin yazdırma işlemlerini de uygulayabiliriz. Bir örnek yapalım ve akıştaki görüntülere müdahale ederek bazı değişiklikler yapalım.

18

Video dosyasından ve ip kameradan görüntü oynatmak için ise daha öncede gördüğümüz gibi VideoCapture sınıfından oluşturulan nesnenin, kurucu metodunda veya Open metodunda video dosyasının veya ip kameranın adresini vermeniz yeterli olacaktır.

Yorumlar

yorumlar





Comments

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir