OpenCV Dersleri – 1 Resim ve Video Yükleme
Merhaba arkadaşlar, opencv kütüphanemizi bilgisayarımıza kurduktan ve visual studio ile entegre ettikten sonra şimdi ilk uygulamamıza başlayalım. İlk dersimizde elimizde var olan resim ve video yu opencv ile ekranda göstereceğiz.
Projenizin hatasız çalışması için gerekli kütüphaneleri eklememiz gerekiyor. Kurulum dersini okumayan arkadaşlar buradan okuyarak visual studio içerisinde nasıl bir ayar yapmamız gerektiğini görebilirler.
Bu uygulamayı tabi ki c++ projesi olarak yazacağız. Giriş niteliğinde olan bu proje için boş bir c++ projesi oluşturuyoruz. Eklememiz gereken ana kütüphaneler şunlar.
İlk uygulamamızın kodunu verelim ve üzerinde konuşalım
Resimlerimiz programda IplImage tipindeki değişkenlerde tutulur. Bu değişkenlere cvLoadImage() fonksiyonu ile resim yüklenir.
cvNamedWindow() fonksiyonu pencere ismi ve flag değişkeni alarak, yeni bir pencere yaratır.
cvShowImage() fonksiyonu içine daha önceden yaratılmış pencere ismi ve resim kaynağı verilerek, resmin ekranda çizilmesini sağlar.
cvWaitKey() ile kullanıcıdan bir tuşa basması beklenir. Böylece program sonlanmadan önce kullanıcıya resim gösterilmiş olur.
cvReleaseImage() içerisine resmi tutan değişkenin adresi verilerek, resmin memory den silinmesi sağlanır.
cvDestroyWindow() fonksiyonuna yok edilmek istenen pencerenin ismi verilerek, pencere silinir.
Resim gösterme işlemini tamamladık, şimdi biraz daha geliştirerek, video yu ekranda gösterelim. İlk olarak yine kodu paylaşıyorum.
CvCapture video formatındaki kaynaklarımızı tutuyor.
cvCreateFileCapture() fonksiyonu ile belli bir noktadaki video dosyamızı CvCapture tipindeki değişkene atıyoruz.
Şimdi bu videodaki her bir frame için işlem yapmamız gerekiyor. Videonun her bir frame i aslında bir resim olduğu için bu frame leri resim formatında yani IplImage tipinde tutacağız.
cvQueryFrame() metodu ile video içerisindeki frame leri tek tek çekiyoruz. Bundan sonrası yukarıdaki resim gösterme uygulamasındakinin aynısı. Sadece cvWaitKey fonksiyonunu esc tuşu için özelleştirdik. cvWaitKey fonksiyonu 33 birim süre kullanıcıdan bir tuşa basmasını bekliyor, basmaz ise devam ediyor. Bu sürenin artırılıp azaltılması ile video hızı değiştirilebilir.
Giriş niteliğindeki yazımız bu kadar. Burada bulunan resim ve videoları kendiniz seçebilirsiniz.
Bunlara da Göz Atmak İsteyebilirsiniz.
<<< Önceki: Yazar olmak istiyorum!
Sonraki: OpenCV Dersleri – 2 Resim Üzerinde Basit İşlemler >>>
Merhaba,
Resim goruntuleme kodunuzu sorunsuz calıstırdım fakat video oynatma kodunuzu calıstıramadım.Videoyu dosydan okuyamadıgı için her seferinde ilk dongude
if(!frame) break;
koduna girip cıkıyo donguden.
sizce nerde hata yapıyorumdur.
Tesekkurler
Ersin Guler
Yorum Bırakın!