OpenCVSharp Kurulumu ve Kullanımı

0
198
opencv_logo
opencv_logo

Aslında bu konuya pek de girmeyi istemiyordum, Çünkü C# da  ben zaten yeniyim. ama ısrarlı sorular ve Özellikle OPOS programını çalıştıramamaktan şikayetler üzerine açıklama yazmak şart oldu.

Baştan başlarsak OpenCv pek yaygın olarak kullanılan bir bilgisayarlı görü (ComputerVision)  kütüphanesidir. Bilgisayarlı Görü İşleminide sadece Görüntü işleme zannetmemek lazım, bakan değil gören bilgisayar meselesi aslında.
İşte Bu kütüphane (OpenCv) C / C++ da yazıldığında öyle doğrudan DotNet dilleriyle kullanamazsınız.  Bazı metodlarla çağrırmanız lazım. Bu noktada bir kolaylık var, bahsi geçen metodlarla OpenCv ye ulaşmamızı sağlayan  ara kütüphaneler (wrappers)  hazırlanmış. Onlardan biri ve de bizim tercihimiz  olan OpenCvSharp dır.

Meseleyi böylece özetlediğimize göre yapacaklarımızı anlatalım. OpenCvSharp’ı kullanmak için

OpenCv yi kurmanız lazım. Şu anki kullanılabilir sürüm OpenCv 2.1 İndirme adresinden Windows için  hazırlanmış  kurulumlu paketini (OpenCV-2.1.0-win32-vs2008.exe ) indirin ve kurun.

OpenCvSharp ın OpenCv 2.1 için hazırlanmış olan paketini indirin ve Bilgisayarınızda uygun bir yere açın.
İndirecekleriniz

Evet Programlamaya geçmek için yaptığımız hazırlıklar tamamlandı.

Visual C# ‘ı çalıştırıp, yeni bir proje oluşturun Konsol yada Winform Farketmez. Sonrasında kullanacğımız kütüphaneleri eklememiz gerekiyor. Solution Explorer da  Reference kısmına sağ tıklayıp Add Reference deyip

AddRef

Browse tabından OpenCvSharpı açtığımız dizine gidip

  • OpenCvSharp.Blob.dll
  • OpenCvSharp.CPlusPlus.dll 
  • OpenCvSharp.dll
  • OpenCvSharp.Extensions.dll
  • OpenCvSharp.MachineLearning.dll
  • OpenCvSharp.UserInterface.dll

Kütüphanelerini projenize ekleyin.
OpenCv nin Machine learning kısmı ve cvblob kütüphanesi C++ ile yazıldığından  onlarıda kullanmak istediğinizde “OpenCvSharpExtern.dll”   dosyasının da programınızla aynı yere koymanız lazım.

Bundan sonrası için yapmanız gereken şey OpenCv  programınızı yazıp derlemek

using System;
using OpenCvSharp;

class Program
{
static void Main()
{
IplImage src = Cv.LoadImage(“lenna.png”, LoadMode.GrayScale);
IplImage dst = Cv.CreateImage(new CvSize(src.Width, src.Height), BitDepth.U8, 1);
Cv.Canny(src, dst, 50, 200);
Cv.NamedWindow(“src image”);
Cv.ShowImage(“src image”, src);
Cv.NamedWindow(“dst image”);
Cv.ShowImage(“dst image”, dst);
Cv.WaitKey();
Cv.DestroyAllWindows();
Cv.ReleaseImage(src);
Cv.ReleaseImage(dst);
}
}

Örnekden de görebileceğiniz gibi OpenCv biliyorsanız kolaylıkla OpenCvSharpda da program yazabilirsiniz.  OpenCvSharp’ın örnek programlarını yada bizim yayınladığımız programları incelemenizi tavsiye ederiz.

Yazı epey bir uzamış ama DLL Cehenneminden ( DLL Hell )  bahsetmeden geçmeyelim. Bizim yayınladığımız programı indirdiniz ve çalıştırmaya kalktınız. OpenCv yi OpenCvSharp ‘ı kurduğunuz halde OpenCv dll hatası veriyorsa. İsimleri aynı olmuş olsada versiyonu farklı olan dll ler yüzünden kaynaklanıyordur problem. Yapmanız gereken
Örnek programla birlikte gelen DLL leri ve çalıştırılabilir programı silin.
Programın proje dosyasını açın ve OpenCvSharp referanslarını silin
Kendi sisteminizdeki OpenCv referanslarını ekleyin
Programı tekrar derleyin.

Probleminiz – umuyorum – Çözülmüş olacaktır.
Çözülmemişse de biz buralardayız.

Israrlı Sorular Üzerine Ek:

  1. OpenCv nin her yeni versiyonunu kurupda denem yapma imkanım ve zamanım yok.
  2. İlk aşamada bir şeyi öğrenirken var olanı aynen uygulmak lazımdır.
  3. Genelde oluşan problem OpenCv ve OpenCvSharp’ın yeni versiyonlarını kullanmaya kalkılıyor fakat uyumlu olmayanları kullanıyorsunuz mesela Siz OpenCv 2.4.3’ü kurmuşsunuz ve OpenCVsharp 2.4.0 ile çalıştırmaya çalışıyorsunuz…
  4. Versiyon uyumunu sağladığınız halde çalışmıyorsa eğer OpenCvSharp’a bir bug raporu yazın. ve hali hazırda çalışan örneği yani yukardaki versiyonları kullanarak aynen uygulayın….

 

Kaynak: http://derindelimavi.blogspot.com.tr/2010/10/opencvsharp-kurulumu-ve-kullanm.html / 2010
Birol Kuyumcu

Facebook Yorumları