Hareket Özetleme
Videolardan alınan örneklerden oluşan görüntü dizilerinin birleştirilerek özet kare elde edilmesi basit bir işlem olmakla birlikte çeşitli ileri uygulamaların temeli olabilir. Fizikte bir eylemin özetlenmesi, örneğin belirli açılarla fırlatılan bir topun bu eğik atış hareketindeki yörüngesinin gözlenmesi görüntü dizisi birleştirme ile sağlanabilir. Daha sonraki aşamalarda görüntü dizilerinden hareket vektörleri çıkarılarak trafik yönünün ve akış hızının belirlenmesi gibi benzer uygulamalar yapılabilir. Ancak proje konumuz kapsamında olmadığı için bu uygulama ile ilgilenmedik.
Geliştirme Aşaması
Proje kapsamında bir videodan alınan 50 karenin C ile yazılmış program ile birleştirilmesi gerekiyordu. Görüntü dosyaları üzerinde işlem yapabilmek için öncelikle yardımcı c kütüphanelerini araştırdık. Sonrasında bitmap dosyasının yapısını incelediğimizde bu işlemi yardımcı görüntü işleme kütüphaneleri olmadan da kolaylıkla yapabileceğimizi gördük. Gri tonlamalı bir bitmap dosyası 14 byte dosya başlık bilgisi, 40 byte görüntü başlık bilgisi ve her biri bir byte olan piksel değerlerinden oluşuyordu. Görüntülerin tutulacağı 2 boyutlu dizinin boyutunu dinamik olarak belirlerken bu başlık bilgisinden faydalandık. Programda kullandığımız değişkenleri çoğunlukla unsigned char türünde tanımladık. Bir byte boyutunda olan bu değişken tipi, görüntü üzerinde byte bazında yapılan işlemlerde kolaylık sağladı.
Geliştirme aşamasında yaşadığımız sıkıntılardan biri de gereksiz bellek alanı kullanımıydı. Örneklenen görüntülerin çözünürlüğünü bilmediğimizden üzerinde işlem yapılacak iki boyutlu dizi için yeterince büyük bir alan açmamız gerekiyordu ve görüntülerin bu boyutun da üzerinde bir çözünürlükte olmayacağının bir garantisi yoktu. Bu yüzden kaynak kodlarında da görülebileceği gibi iki boyutlu diziyi her bir elemanı bir satır dizisinin işaretçisi olan bir dizi şeklinde dinamik olarak tanımladık.
Görüntü dizisi birleştirmede yaşadığımız en büyük sorun örnek sayısı arttıkça hareketlinin belirginliğinin azalmasıydı. Yaptığımız işlem içerik duyarlı olmayıp basit bir ortalama alma işlemi olduğundan böyle bir sonuç almış olduk. Gelişen görüntü işleme teknikleri artık içerik duyarlı (content aware) işlemlere olanak sağlıyor. Eğer hareketli nesneyi arka plandan ayırıp, birleştirme sırasında da hareketliye daha yüksek bir katsayı, arka plana daha düşük bir katsayı verebilirsek hareketlinin belirginleşmesini sağlayabiliriz.
Kaynak Kodları: http://www.isikdogan.com/sourcecodes/54.html
Çalıştırma Örnekleri



Not: "MATLAB'da birkaç satır kod ile yazılabilecek böylesine basit bir programı C ile yazmanızın sebebi nedir, olayı abartmanın ne alemi var?" gibi bir soru akıllara gelebilir.
Cevap: Ders Projesinde C dilini kullanmamız isteniyordu, özel bir sebebi yok :)
Işıkdoğan, Furkan, ve Zafer Sercan. "Resim Dizisi Birleştirme." Programa Dilleri I Ders Projesi. Yıldız Teknik Üniversitesi, 8 Ocak 2010

| Sonraki > |
|---|

