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
- Paketin kendisi : OpenCvSharp-2.1-x86-20100808.zip
- Dökümantasyonu : Documentation-En-2.1-20100508.zip
- Örnek programları : Sample-2.1-20100808.zip
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
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
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, Sıkça Sorulan Sorular kısmını da açtık, sorularınızı bekleriz...
Israrlı Sorular Üzerine Ek:
- OpenCv nin her yeni versiyonunu kurupda denem yapma imkanım ve zamanım yok.
- İlk aşamada bir şeyi öğrenirken var olanı aynen uygulmak lazımdır.
- 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...
- 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....
15 yorum:
Selamlar,
OpenCVSharp kullanarak bir proje geliştirmeye çalışıyorum; fakat CV.filter2d,cv.laplace vb. metotları kullanamıyorum.
OpenCV'deki gibi tüm metotlar kullanılamıyor mu? Bilgilendirirseniz, sevinirim.
ayni söyledikleriniz gibi yapiyorum ama bende Projeyi derlemeye kalktigimda söyle uyari veriyor.
[URL=http://www.directupload.net][IMG]http://s1.directupload.net/images/110322/ag3yrr85.png[/IMG][/URL]
kurduğunuz bütün Opencv bileşenlerini kaldırın
sonra yazıdaki sırasına göre yapın
hala olmuyorsa , detaylı yardım için e-posta atın adres profil sayfaında var
Merhaba,
Lokal olarak projemi çalıştırabiliyorum. Yalnız server a publish ettiğimde bin klasörünün içindeki yolunu belirttiğim dll leri görmeyip catch bloğuna düşüyor. İşin garip bir başka kısmı da, hala dosya yolu olarak lokal bilgisayarımdaki yolu almaya çalışması.
Server'a herhangi bir kurulum yapmadım. Proje içindeki .dll ler yeterli değil mi acaba ve bu dosya yolu gerçekten kafamı çok karıştırmış durumda.
Yardımlarınız için teşekkür ederim şimdiden.
web projesi olarak hiç kullanmadım
ama benim fikrim Servera OpenCv kurmanız lazım
Teşekkür ederim.
Peki server a Visual Studio kurmadan opencv nasıl kurabilirim acaba ?
OpenCv nin VS ile alakası yok
Tamam alakası yok belki ama visual studio da referanslar ekleyerek anlatım yapılmış her yerde.
Benim sorum vs olmadan nasıl kurabilirim.
Teşekkürler
OpenCvSharp dll dosyalarını yanlıs yuklemıssınız. dll hatasını sonunda düzelttim doğru dll dosyaları https://code.google.com/p/opencvsharp/downloads/detail?name=OpenCvSharp-2.1-x86-20110509.zip&can=2&q=
bu linkte
yanlışlık yok aslında bu yazının yayınlandığı tarihte link bu şekildeymiş bu link "Deprecated" edilip "May 09, 2011" sizin verdiğiniz linkteki hali yayınlanmış
dosyada dll dosyalarını bulamadım.
internette aratın
Arkadaslar denılen herseyı uyguluyorum ama referanslar gozukmuyor ekleyemıyorum nedenı ne olabılır acaba ?
hocam kolay gelsin ben bu projenizi vs2013 te açmaya çalıştım ama başaramadım bu konuda yardımcı olurmusunuz
güncel kullanım dökümanı için OpenCvSharp ın kendi sitesine bakın
Yorum Gönder