Cumartesi, Aralık 12, 2009

C# ile OpenCv kullanmak

C# ile daha doğrusu .Net in dillerinden biriyle OpenCv kütüphanesine ulaşmanız mümkün. Bu iş için yazılmış .Net kütüphanelerini hızlıca  tanıyalım

  • SharperCV :  Uzun süredir güncellenmiyor lisansı kötü
  • OpenCVDotNet : Managed c++ ile hazırlanmış, uzun süredir güncellenmiyor, lisansıda GPL
  • The OpenCV Wrapper Project : Yapı olarak aslında OpenCv ye oldukça uyumlu düşünülmüş son güncelleme Mayıs 2009 yani güncel sayılır. Fakat  "We don't allow to use the wrapper for commercial purposes. This includes reselling wether in the original or modified form (sources or binaries) or using in commercial projects." diyen çok kötü bir lisansa sahip
  •  Emgu Cv :  c# ile yazılmış ve mono ile de derlenebildiğinden cross-platform , lisansı GPL yada ticari olabiliyor tek kullanıcı için 199 $ fiyat biçmişler "If you are upgrading, you save 50% off the license fee." gibi cabası da var ve belkide ticari yanı olması sebebiyle  en profesyöneli
  • OpenCvSharp :  C# ile yazılmış ve oldukça güncel ve ticari kullanım içinde gayet uygun LGPL lisansına sahip Mono ile de kullanılabiliyormuş yani cross-platform. Bizim tavsiye ve tercih ettiğimiz kütüphane de bu.




Gelelim Örneğimize  Web Kamera dan Görüntü alıp onun üzerinde basit işlemler uygulayan ve avi olarak kaydedebilen küçük bir programcık.
IDE olarak Visual C# 2008 Express kullanıldı
Derlemek için OpenCvSharp OpenCv 2.0 için olan versiyonu kullanıldı

Indirmek için burdan buyrun  :  Effects

16 yorum:

mkysoft dedi ki...

Güzel bir inceleme olmuş, teşekkürler. Bende bakınıyordum hangisini kullanmak lazım diye.

bluekid dedi ki...

Eh artık bakmazsın üzerinde çalışmaya başlarsın

Mustafa dedi ki...

Programı ilk derlediğimde
BadImageFormatException was unhandled hatası alıyorum.Çözemedim nedendir sizce?

hata içeriği şu;

OpenCvSharp, Version=2.0.3598.25091, Culture=neutral, PublicKeyToken=null' dosyasını veya derlemesini ya da bağımlılıklarından birini yükleyemedi. Geçersiz biçimdeki bir program yüklenmek istendi.

Kütüphaneyi kurdum fakat aldığım hata buydu.64bit vista kullanıyorum.Kurduğum 32bit uyumlu opencv.
64bit in opencv nin içinde sadece DLL ler bunları hangi klasöre taşıyacağımı bilemedim

bluekid dedi ki...

OpenCvSharpın dışında Opencv yi de kurmanız lazım
OpenCvyi kurdunuz mu ?
yada belkide 32 bit 64 uyumsuzluğu vardır. Orjinal Program 32 bit Vistada derlendi
Profil sayfasında e-posta adresim var ordana bana ulaşabilirsiniz

Bora Ciner dedi ki...

keşke 3 sene önce bu kütüphaneyi (.net ile düzgün şekilde çalışanını bulsaydık) o zamanki robotu çalştırmak için 2 programı piping ile bağlamıştım

bluekid dedi ki...

Geç olsunda güç olmasın :)

Adsız dedi ki...

aforge.net nasıl?

Adsız dedi ki...

Aforge.Net nasıl???

bluekid dedi ki...

Aforge 'i hiç kullanmadım
Benzeri işleri yapıyor fakat
sadece .Net için
OpenCv ile geliştirdiğiniz projeyi
C/C++'a taşıyabilirsiniz

Adsız dedi ki...

ben nesne takip eden robot yapmak istiyorum bitirme projesi olarak,görüntü işlemeyi bilgisayarda yapıp robotun nesneyi takip etmesi için gerekli bilgileri seri porttan aktarmayı düşünüyorum.Genel anlamda c v c++ ve algoritmam iyidir.Acaba bu proje beni aşar mı?? Yardımlarınız için şimdiden teşekkür ederim...

bluekid dedi ki...

nesneden kast ettiğiniz şeye göre değişir ama halledilmeyecek şey değil
e-posta ilede ulaşabilirsiniz profil sayfasında var

OĞUZHAN YILDIRIM dedi ki...

Ben C# için openCv kurulumunu ve anlattığınız adımları uyguladım. Sadece bir yerde hata alıyorum. PictureBox a resim basarken bitmap nesnesi gerekli.'tmp.ToBitmap()' bu kısımda ToBitmap() fonksiyonu tanımlı değil. Bu fonksiyonu hangi kütüphaneden alıyor ? IplImage'i bitmap'e çevirirken sıkıntı yaşıyorum. Yardımcı olursanız sevinirim.

bluekid dedi ki...

o fonksiyon OpenCvsharpdan geliyor eğer tanımlı değilse bir şeyleri yanlış yapıyorsunuzdur...

Adem Esen dedi ki...

Benim sorunda aynı

Can Eser dedi ki...

Merhaba ben bir otomasyon firmasında yazılım mühendisiyim. İlk kez bir webcam uygulamasını projemde kullanacağım. İhtiyacım olan tek şey resim çekebilmek ve kaydetmek. AForge ve OpenCV nin lisans olayına tam olarak anlam veremedim. Bunları veya en azından birini projemde free kullanabilirmiyim yoksa satın almam mı gerekir? Yada bunu daha kolay bir şekilde halledebilirmiyim? Saygılar.

bluekid dedi ki...

1) OpenCv kendisi ticari kullanıma uygun .Net ile kullanmanızı sağlayan kütüphaneler ile ilgili açıklama yazıda geçiyor. Açık kaynak kod lisanslarının ne manaya geldiğini hangilerinin ticari kullanıma uygun olduğunu araştırın

2) sadece webcam'den görüntü almak için opencv ye ihtiyacınız yok daha basit çözümleri araştırın

3) Yazı dışı sorularınız için iletişime geçin Yorum bırakmayın....