Sayfalar

OpenCvSharp etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
OpenCvSharp etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

Pazar, Şubat 26, 2012

Kameralı Ölçüm Sistemi 2


Kameralı Ölçüm Sistemi from bluekid on Vimeo.


Vakti zamanında yaptığımız bir Çalışmaya ek yaptık

Bu haliyle program Kamera üzerinden,  sabit uzaklıktaki  2 boyutlu
  • Uzunluk 
  • Dikdörten Alanı
  • Daire Alanı
  • Açı
 Ölçümü yapabilmektedir.

Kalibrasyon : iki nokta seçilip gerçek uzunluğu verilir.  bu şekilde piksel cinsinden uzaklıklar gerçek değere çevrilir.
Uzunluk için Koodinatları bilinen iki noktadan ve Pisagor teroemiyle hesaplanır. Sonuç Piksel cinsinden gerçek değere çevirmek için Kalibrasyon faktörüyle çarpılır
Dikdörten ve Daire alanı içinde şekillerin ebatları hesaplanır, kalibrasyon faktörüyle çarpılıp İlgili alan formülleri kullanılır.
Açı hesabı için : Seçilen Üç noktadan  hesaplanan uzunluklar Cosininus Teoremindeki yerine konulup açı çekilir

Pazar, Temmuz 24, 2011

OpenCv 2.3 Yayınlandı


OpenCv 2.3RC'nin yayınlandığından bahsetmiştim zaten. Fazla arayı açmadan OpenCv 2.3'ü de yayınladılar sağolsunlar. Bizde şöyle üstün körü baktık.

Kurulum paketi hazırlamamışlar. Hazırlanan paket sadece sıkıştırılmış dosyaları açıyor. dll lerin path işlerini halletmek size kalmış.

Dökümantasyonu epey bir ilerletmşler, yeni kaynaklar ( pdf ) var
  • opencv_cheatsheet : OpenCv nin C++ arabiriminde ne nasıl yapılır konusunda kısa ve öz bir referans
  • opencv_tutorials :  OpenCv üzerine eğitici örnek programlar. Şimdilik  kısmen tamamlanmış.
  • opencv_user :  Kullanıcı rehberi
  • opencv2refman : Referans Kitabı
başlık dosyalarının ve kütüphane dosyalrının konumları için yeni düzenlemeler yapmanız lazım.
 kütüphane dosyalarının bölümlenmelerinde  ve isimlerindede değişiklikler var. detay için dökümantasyonlarına bakın.

Geriye uyumluluk konusunda bence gayet başarılı Üstteki resimdeki programı OpenCv 2.3 ile tekrar derledim. tek satır değiştirmeden.

Bu  sefer tavsiye ediyorum geç kalmadan OpenCv 2.3'e geçin.
Bir an öncede C++ API larını öğrenmeye bakın eskiden C API ları üzerine C++ yapısı kurulmuştu. Bir süredir tersine bir geçiş var. Yani artık OpenCv gelişimini C++ üzerinden yürütüyor. C API ları geriye uyumluluk ve diğer dillerden kullanılabilme adına tutuluyor.
Unutmadan OpenCvSharp da 2.3 versiyonunu yayınladı...

Pazar, Nisan 10, 2011

Renk Filitresi



Uzun uzun anlatmaya gerek  Değişik Renk uzaylarında, Web kamerasından alacağınız görüntüler üzerine gerçek zamanlı renk filitreleme yapabileceğiniz pratik bir program.
Hatta üzerine Renk filitrelemeyle elde ettiğiniz mask görüntüyle Inpaint uygulama imkanıda var.
Program C# ile yazıldı elbette OpenCvSharp kütüphanesi kullanıldı.
İndirmek için : ColorFilter

Pazar, Nisan 03, 2011

Plaka Okuma III


Aslında bu konuda tekrar yazacağımı sanmıyordum ama Yoğun ilgi ve ısrarlı sorular ve yoğun indirilmesi fikrimi değiştirmeme sebep oldu.
Soruların Bir kısmı örnek programın çalıştırılamaması üzerine bu sorular için OpenCvSharp Kurulumu üzerine yazdığımız yazı var, cevap orda ordaki söylenenleri dikkatlice uygulayanlar meseleyi hallediyorlar. Konuyu iyi okumadan, anlamadığı halde söylenenlerin bir kısmını farklı yapanlar, yakınmaya devam ediyor,

"Biz orda yazanları yaptık ama olmuyor"

cevap şu orda yazan kuralları dikkatli uygılarsanız olur.

Soruların diğer kısmı ise daha iyi plaka bulma, karekter ayrıştırma, plaka tanıma üzerine felan oluyor. Örneğin iyi olmadığından dem vuranda olmuyor değil, hani.

Evet haklılar elbette örnek çok başarılı bir örnek değil. ama  Zaten doğrudan ticari kullanıma uygun bir örnek yayınlıyoruz diye bir iddiamızda olmadı. Bu program bir İskelet içeriyor, üzerinde daha çok emek ve imkan ister.

Madem bu kadar alaka çekiyor ( bu gün itibarıyla 1322 kez indirilmiş ),  belki devam etmek isteyen çıkar, belki üzerinde geliştrime yapmış, paylaşmak isteyen insanlar olabilir, yayınlayacak yer olsun diye ayrı bir sayfa açtık. Microsoft'un açık kaynak kodlu projeler için açtığı Codeplex den bir sayfa aldık.

Opos.CodePlex.Com
Programın en son halininide yayınladık. Çok büyük bir gelişme yok aslında yeni bir Ocr ( Puma.Net ) eklendi.  Görebildiğim kadarıylada Gocrden daha başarılı gibi.
Fırsat buldukça elimizdeki dökümantasyonlarıda orada yayınlamayı düşünüzyoruz.
bu konuda ilk yazımda
- Açık kaynak kodlu bir sistem yapılabilirmi ?
- Pek tabiiki mümkün ama esas mesele belli bir düzeye gelmesi için gereken desteği alması
- Açık kaynak kodlu böyle bir sistem sizce gereken desteği alabilirmi ?
- Pek sanmıyorum.
 diyerek pek umutlu olmadığımı belirtmişim, ama işte 1300 küsür insandan 3-5 kişi çıksa bu iş yürür diye umutlanıyorum.
bakıp göreceğiz...

Pazar, Ekim 24, 2010

OpenCvSharp Kurulumu ve Kullanımı

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

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, Sıkça Sorulan Sorular kısmını da açtık, sorularınızı bekleriz...

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....

Pazar, Haziran 27, 2010

Kameralı Ölçüm Sistemi

Sanayide üretimin önemli bir aşamasıda Kalite kontroldür. Kalite kontrol de ürünlerin pek çok kıstasla sınanması lazım gelebilir. İşte onlardan biride ürünün istenen hassasiyette ebatlara sahip olmasıdır. İşte bu veya benzeri pek çok amaç için basit bir Kameralı ölçüm sistem programı hazırladık 

Ve Örnek ölçüm görüntülerimiz


Ben Bunları basit bir kumpaslada ölçerim demeyin.

   
 Kameranızı  mikroskopa bağlayıp neler ölçebileceğinizi de düşünün... 

Programımız C# ile yazıldı ve OpenCvSharp kütüphanesi kullanıldı
Indirmek için :  Cetvel

Cuma, Nisan 09, 2010

OpenCv 2.1 Çıktı

Evet OpenCv 2.1 sessiz sedasız yayınlandı, Haberdar edelim ve İlk izlenimlerimizi  söyleyelim dedik...

  • Pekçok bug temizlenmiş
  •  OpenMP yerine TBB koymuşlar ( bence malesef  Anlayabildiğim kadarıyla TBB nin iki lisansı var biri ticari 299 $ cık diğeri GPL v2. GPL'inde ticari kullanımı sıkıntılı. BSD gibi ticari uygulamaya uygun bir lisansa sahip olan OpenCv'ye bu haldeki TBB yi yamamak bence çok saçma olmuş. Pek tabiiki Intelin açısından bakılırsa gayet münasip de görünebilir.
  • autotools desteğinide  kaldırmış. Özellikle Linux için gayet kolay oluyordu, artık Linux da da CMake ile cebelleşmemiz lazım.
  • 64 bit derleme desteği geliştirilmiş.
  • Statik derleme imkanı sunulmuş. Gayet güzel  dll dertlerinden kurtuluruz bu sayede...
İlave Notlar  :
  • Statik derleme seçeneği hata veriyor ve build tamamlanamıyor hem VS Express hemde Code Blocks için denedim sonuç aynı
  • OpenCvSharp da OpenCv 2.1 için uygun paketini yayınladı

    Pazar, Ocak 31, 2010

    Plaka Okuma II

    Öncelikle tekrar  Plaka Okuma  yazımıza göz atmanızda fayda var

    Evet İlk yazımızda belirttiğimiz gibi. Bu tip bir uygulma için elimizde örnek verilerin olması lazım. Bizim öyle bir imkanımız malesef yoktu. Bizde JavaANPR de kullanılan verileri alıp onlar üzerinden bir şeyler hazırlamaya çalıştık. 

    Bu veriler ilk aşama için yeterli olsada diğer aşamalar için yetersizdi. mesela Karakter tanıma için ; plakada geçen her harf ve rakam için yeteri sayıda örnek görüntü lazım. Bu durumda işin kolayına kaçıp bulunan plakayı okuması için Optik Karakter Tanyıcı (OCR) programına havale ettik.Pek tabikii bu durumda sistemin başarısı OCR nin başarısına bağlı kaldı... 

    Sonuç olarak Otomatik Plaka Okuyucu Sistemi dediğimiz program ortaya çıktı.


    Programa aslında C++ ile başlamış olsamda. bur aralar C# pekiştirdiğimizden  C# ile tekrar yazıldı ve tamamlandı. İsmi de bu yüzden OPOSSharp oldu. Pek Tabii ki OpenCvSharp kullanıldı. OCR programı olarak GOCR kullanıldı.
    Üzerinde çalışmaya devam etmek gibi bir niyetim yok. Eğer böyle bir niyetim olsaydı ayrı bir proje sayfası açardık.  Unutmadan kodların lisansı GPL ve Projeye devam etmek isteyenler olursa da yardımcı olmaya çalışırız.

    Download : İndirmek için

    Cumartesi, Ocak 23, 2010

    Histogram of oriented gradient object detection

    Nesne tespiti için pek çok metod var. Mesela yüz bulma için OpenCv de HaarCascade metodu kullanılıyor. OpenCv 2.0 ile birlikte Histogram of oriented gradient object detection  yani HOG de eklendi. Örnek programlarda "peopledetect.cpp" dosyasınında kullanımını görebilirsiniz.

    Biz C# ve OpenCvSharp ile bir örnek hazırladık. Bu örnekde hem Hog kullanımını hemde Video dosyasınından görüntü çekmeyi göreceksiniz. Hog 'un şu andaki performansını pek de beğenmedim ama daha iyi  "HOGDescriptor" kullanılarak belkide daha iyi sonuçlara ulaşılabilir. Konuyla ilgili daha teferruatlı bilgi için
    Object Detection Using opencv - Integral Histogram for fast Calculation of HOG Features I  II III

    İndirmek için :  HogObjectDetection

    Not : Resimdeki görüntü Sezai Karakoç'un Mona Roza şiirinin Sacit Onanın okuyuşundan. Yoksa siz hala dinlemediniz mi ? ne ayıp...

    Pazartesi, Ocak 11, 2010

    Yüz Nitelik Seçici



    Bu programımız ile verilen resimdeki yüzler OpenCv nin haarcascade detectorleriyle tespit edilip standart ebata ( bu programda 64x64 ) çevriliyor sonrasında yüz niteliklerinin koordinatlarını seçip kaydediyoruz.
    Bu koordinatlar İlerde bize "Göz Bulma" türü programlar  hazırlamamız için  gereken verileri sağlayacak. Bu konuda çalışma yapanlara bir faydası dokunur belki. Hatta biraz daha üzerinde çalışılsa daha genel bir Nitelik işaretleme programı olabilir.

    Bu aralar C# pekiştirmeye çalıştığımızdan programımızda C# da yazıldı. Pek tabiiki OpenCVSharp kütüphanesi kullanıldı

    İndirmek için :

    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

    Cumartesi, Ocak 24, 2009

    OpenCv Linkleri

    OpenCv Kütüphanesi Ana Site
    http://sourceforge.net/projects/opencvlibrary/
    http://opencv.org/
    Kütüphaneyi indirmek için : Download
    OpenCv SVN :  https://code.ros.org/svn/opencv/trunk/opencv 
    OpenCv Developer twitter  : http://twitter.com/opencvlibrary 
    OpenCv Bug Hata bildirim  :  https://code.ros.org/trac/opencv/wiki/
    Yardım için Forum : Forum
    OpenCv nin ana sayfası olarakda geçen Wiki Sayfaları
    http://opencv.willowgarage.com/wiki/
    OpenCv Yahoo gurubu
    http://tech.groups.yahoo.com/group/OpenCV/
    Güzel bir OpenCv Forum
    http://www.bernardotti.it/portal/forumdisplay.php?f=7

    OpenCv Japonya
    http://opencv.jp/
    Sizinde çok işinize yarayacağını umduğum Örnek programlar
    http://opencv.jp/sample/
    OpenCv Çin
    http://www.opencv.org.cn/index.php
    ve Çinde bir OpenCv Sempozyumu olmuş; OpenCv nin geliştiricilerinden Vadim Pisarevsky de katılmış. Sempozyumun Görüntü ve Dosyalarına buradan ulaşabilirsiniz.
    OpenCv Kore
    http://www.opencv.co.kr/
    OpenCV Swiki
    http://alereimondo.no-ip.org/OpenCV

    Değişik Platformlarda OpenCv
    OpenCv on Android - Official -
    OpenCv on Android 
    OpenCV under WindowsCE
    OpenCV on Mac OS X
    OpenCV on the Cell ( Sony PLAYSTATION 3 )
    GpuCV: GPU-accelerated Computer Vision 

    Değişik Dillerde OpenCv
    OpenCv for dotNet 
    OpenCv for  Java 
    OpenCv for Delphi 
    OpenCv yi Matlabda kullanmak 
    OpenCv for Python ( resmi olan dışındaki )

    Öğretici Yazılar Örnekler
    Introduction to programming with OpenCV
    Tutorials and Code Samples
    Examples and Lecture_demos
    Microsoft Visual C++ ile OpenCV kullanımı
    MFC ile OpenCv
    OpenCv yazıları (yassine benabbas)
    Motion,Tracking Feature and Contour Detection
    Implementing a Simple 2D Object Tracker
    OpenCV haartraining
    Haar Cascades
    Face Recognition
    Iowa State University Computational Perception dersinden
    Noah Kuntz un TOpenCv dersleri 1 2 3 4 5 6 7 8 9 10 11

    Bloglar
    http://opencv.wordpress.com/
    http://yester-place.blogspot.com/
    http://www.myopencv.blogspot.com/
    http://blog.csdn.net/hunnish
    http://nashruddin.com/tag/opencv
    http://blog.weisu.org/search/label/OpenCV
    http://blog.damiles.com/?cat=12
    http://blog.ednchina.com/opencv2008/31147/category.aspx
    http://www.computer-vision-software.com/blog/
    http://smsoftdev-solutions.blogspot.com/search/label/opencv 
    http://ipwithopencv.blogspot.com/ 
    http://www.aishack.in/
    http://www.shervinemami.co.cc/openCV.html
    http://opencv-code.com/ 
    http://robocv.blogspot.com/


    Son olarak malesef OpenCv Türkiye diyebileceğimiz bir site yok. Ama Türkçe kaynaklara ulaşmak için Google sormanız yeterli sanırım

    Türkiyeden Sayfaları da ekleyelim Öncelikle Kendimizden başlayalım


    Benim bilmediğim sizin ekleyeceğiniz bağlantılar varsa bildirin ekleyelim