EmguCV – Projeye Entegrasyonu ve Kamera Görüntüsü Alma
Merhaba,
EmguCV, AForge.NET ve Accord.NET kütüphanelerinden oldukça daha fazla ve daha hassas image processing algoritması barındıran ve görüntü işleme üzerine tasarlanmış olan OpenCV kütüphanesinin .NET ortamına dönüşümsel implemantasyonunu sağlayan bir wrapperdır. Bu içeriğimizde görüntü işleme üzerine güçlü nitelikleri olan bu kütüphanenin öncelikle bir projeye nasıl entegrasyonunun sağlandığını inceleyecek, ardından sistemdeki kameradan görüntünün nasıl elde edildiğini kaleme alıyor olacağız. Bundan sonraki içeriklerimizde ise EmguCV ile ilgilide onlarca verimli çalışmaya imza atacağımızın müjdesini baştan vermeyi istiyorum…
Öncelikle EmguCV kütüphanesinin dosyalarına buradaki resmi adresinden erişebilirsiniz. EmguCV’nin resmi sayfasından ilgili download penceresine göz atarsanız eğer buradan da gördüğünüz gibi EmguCV sürümleriyle karşılaşacaksınız. Bu makale kaleme alındığı tarihte EmguCV’nin en son sürümü “3.2” versiyonuna sahiptir. Her ne kadar bir ürünü kullanırken farz olan o ürünün son versiyonunu tercih etmek olsada, ben bu ve bundan sonraki çoğu makalemde “2.4.10” versiyonunu tercih ediyor olacağım. Bu tercihimin sebebini konumuzun dışında olsada merak edenler olacağı için açıklamakta fayda vardır.
Eğer ki; EmguCV yahut OpenCV kütüphanelerini araştırırken muhtemelen ilk olarak bu siteye gelmeden önce onlarca içerik üzerinde araştırma yapmışsınızdır. Haliyle bu kütüphaneler üzerinde fazla kaynağın bulunmadığı, bulunsada çalışma problemleri yaşandığı konusunda benimle hemfikirsinizdir. İşte ahval bu iken elimizdeki sınırlı kaynaklardaki anlatım ve izahatlerin bir çoğu “2.4.10” versiyonuna uygun bir şekilde çalışmakta, bu versiyondan sonraki sürümlerde kodun yapısı ve inşası değiştirildiği için beklenmedik hatalarla karşılaşılmaktadır. İşte bu yüzden gittiği yere kadar belirttiğim versiyon ile çalışmalarımızı gerçekleştireceğiz.
Velhasıl… Konumuza devam edelim.
Yukarıda vermiş olduğum adreslerden temin ettiğimiz EmguCV kütüphanesinin içerisindeki dosya ve klasörler aşağıdaki gibi olacaktır.

Çalışma yapacağımız projemize EmguCV kütüphanesinin .dll dosyalarını “bin” klasörü içerisinden referans olarak yükleyeceğiz.
Bu işlemden sonra artık kodlamaya geçebiliriz gibi gelsede göz ardı edilmemesi gereken bir husus daha vardır. O da “bin” -> “x86” klasörü altındaki .dll dosyalarını Existing Item olarak projeye entegre etme gereksinimidir.

Yukarıdaki ekran görüntüsünde görüldüğü üzere projemize sağ tıklayarak “Add” -> “Existing Item” kombinasyonunu takip ediyoruz. Bu işlemden sonra açılan pencerede yukarıda bahsettiğimiz dizine gidip var olan tüm dosyaları aşağıdaki gibi seçerek projemize entegre ediyoruz.
İlgili dosyaları entegre ettikten sonra hepsini seçip sağ tıklayarak “Properties” sekmesine tıklıyoruz ve açılan ilgili pencerede aşağıdaki ekran görüntüsünde görüldüğü üzere “Copy to Output Directory” bölümünü “Copy always” olarak değiştiriyoruz.
Eğer ki bu son işlemi yapmamış olsaydık;
System.TypeInitializationException: ”Emgu.CV.CvInvoke’ tür başlatıcısı özel durum döndürdü.’
DllNotFoundException: DLL ‘opencv_core2410’ yüklenemedi: Belirtilen modül bulunamadı. (HRESULT özel durum döndürdü: 0x8007007E)

gibi hatalarla karşılaşacaktık. Tabi ki de bu işlem sayesinde bu tarz hatalardan çalışmamızı peşinen sadeleştirmiş olduk.
Eveett… Artık EmguCV kütüphanesinin entegrasyonunu sağ salim sağlamış bulunmaktayız.
Şimdi sıra geldi EmguCV kütüphanesini kullanarak kamera görüntüsünü elde etmeye.
//Sistemdeki ilk kamerayı elde ediyoruz.
Capture capture = new Capture();
//Görüntü almayı başlatıyoruz.
capture.Start();
capture.ImageGrabbed += (a, b) =>
{
Bitmap image = capture.RetrieveBgrFrame().Bitmap;
pictureBox1.Image = image;
};
İşte yapmamız gereken işlemler bu kadar arkadaşlar. EmguCV ile ilgili bir sonraki konumuzda face detection-yüz algılama işlemi üzerine konuşuyor olacağımızı şimdiden bildiririm.
O halde şimdilik hoşçakalın…
Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…





Teşekkür ederim çok güzel anlatım bu hatayı çözememiştim
Merhaba Seda Hanım,
Faydalandıysanız ne mutlu…
Sevgiler.
Merhabalar Ben Projemde 3.0.0.2157 versiyonunu kullanıyorum ancak \bin\%86 dizininde bu kadar çok dosya yok ne yapmalıyım?Sizin kullandığınız Versiyonumu İndirim Acaba?
Usb kamerayı nasıl seçebiliriz yani laptopdaki 2. kamera oluyor
Capture capture = new Capture(1);
capture.Start();
Fakat herhangi bir görüntü gelmedi
iyi çalışmalar;
yukarıdaki işlemleri birebir yapıp, kodları çalıştırınca aşağıdaki hatayı alıyorum.
Yardımınız için şimdiden teşekkürler.
(aynı hata yüz,göz,burun algılama uygulamanızı indirip, çalıştırınca da çıkıyor.)
—
An exception of type ‘System.NullReferenceException’ occurred in 03-emguCv-YuzGozBurunAgiz-Algila.exe but was not handled in user code
Additional information: Nesne başvurusu bir nesnenin örneğine ayarlanmadı.
—
İki resimi eşleştirme nasıl yapılır EmguCV ile
Capture capture = new Capture(); burada hata veriyor leptopta kameraya mı ulaşamıyor ne yapmam lazım??????
Aynı hatayı alıyorum çözebildiysen anlatır mısın?
https://yazilimtoplulugu.com/d/82-emgucv-entegrasyonu-ve-goruntu-alma Atıf yapmadan alıntınızı yapmışlar. Ayıp. Atıf yapmak bu kadar mı zor.?
Karşı içeriğe de gerekli uyarıyı yaptığınızı gördüm. İlginiz ve duyarlılığınız için teşekkür ederim.
harfi harfiyen uyuşmuyor sadece benziyor. benzer içerikler olduğu için size benzer gelmiş olabilir.
Rica ederim. Karşı tarafın uyarısıyla resmin hemen altında kaynak linkinin olduğunu gördüm. Link direkt sizin sayfanıza yönlendirmekte. Bir sorum olacaktı izninizle. EmguCV – Multiple Face Recognition(Çoklu Yüz Tanıma) proje dosyasını indirip çalıştırdığımda gayet güzel çalışmakta; fakat, projenin setup dosyasını oluşturup setup dosyasından kurulum yaptığımızda üsteki hatayı vermekte. Bu sorun neden kaynaklanmakta. Bilgi verilmesi rica olunur.
Merhaba,
Konuya dair herhangi bir fikrim bulunmamaktadır. Eğer ki, çözüm sağlayabilirseniz lütfen edindiğiniz bilgileri buradan bizimle paylaşmanızı rica ederim.
Sevgiler.
Geri dönüş yaptığınız için teşekkür ederim. Herhangi bir çözüm yolu bulabilirsem ileteceğim. Saygılarımla.