For English version: http://www.codeproject.com/KB/GPU-Programming/opencv-cuda-filters.aspx
Biraz uzun soluklu olan bu yazımıza OpenCV ve CUDA hakkında kısa maddeler ile başlayalım.
NOT: Bu yazıdaki kod örnekleri kısaltılarak verilmiştir. Kod belgeleri için Doxygen ile yaratılmış olan mikrositeyi inceleyebilirsiniz.
NOT: Her tür eleştirinizi yorumlara yazabilirsiniz, teşekkür ederiz.
İçindekiler
- Gerekenler
- Görüntü İşleme ve Webcam
- ISingleImageFilter Kullanımı
- En basit filtre: IdentityFilter
- CPU Üzerinde Negatif Görüntü Filtresi
- Yeniden Hoşgeldin CUDA!
- Görüntü Negatifi – CUDA
- Texturelar
- Görüntü Negatifi – CUDA Texture
- Filtre Zinciri: SingleImageFilterChain
- UML Şeması
- Filtre Örnekleri
Gerekenler
- VS 2010 ve C/C++ Bilgisi
- OpenCV ile görüntü yakalama aşinalığı. Windows için OpenCV 2.2′yi patchlemeyi unutmayın! Önceki yazımızı inceleyebilirsiniz.
- VS2010 ile CUDA projesi yaratabilmek. Önceki yazımızı inceleyebilirsiniz.
- CUDA içeren kodları çalıştırabilmek için CUDA destekli bir ekran kartı.
- Derleyici includeları, libraryleri ve hataları ile uğraşmak için bolca sabır.
OpenCV Nedir?
OpenCV, açık kaynaklı bir bilgisayarlı görselleştirme kütüphanesidir. Amacı görüntü işleme ve görselleştirmede sık kullanılan metodların kolaylıkla erişilebilir olmasını sağlamaktadır.
CUDA Nedir?
CUDA, Compute-Unified Device Architecture, hesaplamaların grafik işlemcisi üzerinde gerçekleştirilmesi amacıyla CPU’dan zaman bağımsız olarak ve yüzlerce çekirdek üzerinde binlerce thread kullanarak paralel hesaplamaya olanak veren nVidia’nın bir kaç senedir satışa sunulan ekran kartlarında uyguladığı bir mimaridir. Bu muazzam paralellik(massively parallel) bize doğru kullanıldığında hesaplamada hız olarak dönecektir.
Görüntü İşleme ve Webcam
Görüntü işleme, görüntüye uygulanan matematiksel bir işlemi ifade eder. Örneğin görüntünün negatifinin alınması, görüntünün 90 derece çevrilmesi, görüntünün bir kurala göre bulandırılması vb. basit görüntü işleme metodlarıdır. Bir önceki yazımızda bahsettiğimiz OpenCV ile webcam görüntüsü yakalamayı bu yazımızda bir adım ileri götürerek görüntü işleme ile genelleştirilmiş olarak birleştireceğiz.
Continue reading »