Image Processing- Average Filtering Yöntemi
Merhaba arkadaşlar, bu yazımda sizlere görüntü işlemede resmi pürüzsüzleştirme (smoothing) yöntemlerinden biri olan average filtering konusunu anlatacağım.
Devamı...OpenCV- Camera Calibration-2
Merhaba Arkadaşlar,
Bu yazımda sizlere buradaki yazıda anlattığım kamera kalibrasyonunun kodunu paylaşıp kodu açıklamaya çalışacağım. Kodu anlatmaya başlamadan önce kullandığım chessboard’u buraya yükleyeceğim. Benim kullandığım chessboard 9×6. Siz başka boyutlarda bir chessbaord kullanabilirsiniz. Ama benden size tavsiye kare yapıda olan bir chessboard ile kalibrasyon yapmak yerin dikdörtgen boyutlardakileri tercih edin.
Devamı...OpenCV- Camera Calibration-1
Merhaba Arkadaşlar,
Sizlere bu yazımda kamera kalibrasyonu hakkında bilgi verip, bunu OpenCV kullanarak nasıl gerçekleştirebileceğimizi göstereceğim. Öncelikle şunu söylemekte fayda var : Kameraların kullanım alanına göre bir çok çeşidi bulunmaktadır. Örneğin daha çok alanı görmek için tasarlanmış(180 derece açı ile görebilen kameralar) kameralar, fish eye dediğimiz görüntüyü kabartılmış gibi gösteren kameralar, düz kameralar(web-cam), odağı ayarlanabilen kameralar vs. Kamera kalibrasyonla ne olacak?
Devamı...Image Processing- Resmi Boyutlandırma, Sağ-Sol-Yatay-Dikey Döndürme
Merhaba arkadaşlar, bugün sizlerle Image Processing de uygulamaları ve hazır fonksiyonları bulunan resmi vertical, horizontal, sola döndürme, sağa döndürme ve image resize(yeniden boyutlandırma) konularını göreceğiz. Fakat bu yazımızda Matlab’ın bu konulardaki hazır fonksiyonlarını (imrotate,imresize vb) kullanmayacağız, kendimiz bu fonksiyonları yazacağız.
1)İlk olarak resmi vertical olarak çevireceğiz. Aşağıda örnek bir resmimiz var. Resmimiz 403*500*3 truecolor bir image.
Devamı...
OpenCV- Window7 Visual Studio Kurulumu
Merhaba Arkadaşlar,
Sizlere bu yazımda OpenCV 2.1 kütüphanesinin Windows 7 işletim(32-bit) sisteminde Microsoft Visual Studio 2010 ile kullanımını anlatacağım. Bir çok yeni başlayan arkadaşımız OpenCV kütüphanesini ne yazık ki kuramıyor veya kurmakta çok zorluk çekiyor. Öncelikle OpenCV 2.1 bilgisayarınızda yoksa onu buradaki linkten indirin. Burada sıkıştırılmış olarak inen dosyayı bilgisayarınızda bulabileceğiniz bir yere açın. Unutmayın bu dosyaya bir daha dokunmamak için güzel bir yer seçmeniz ve silmemeniz gerekli. Bu aşamadan sonra Windows işletim sistemi kullanıyorsanız, OpenCV’nin dosyala yolunu (bin klasörünü) windows’un sistem değişkenlerine eklemeniz gerekmektedir. Bunun için Denetim Masasına gidin oradan Sistem ve Güvenlik kısmını tıklatın. Daha sonra Sistem‘i tıklayacaksınız. (Aynı işlemi bilgisayarıma girip yukarıdaki menüden sistem özelliklerini tıklayarak ulaşabilirsiniz. ) Buradaki çıkan menüden Gelişmiş Sistem ayarlarını açıyoruz. Gelen pencerede üstteki menülerden gelişmiş sekmesine geliyoruz. Burada sağda en aşağıda ortam değişkenlerini(Environment Variables) göreceksiniz. Buraya tıklatıp Path kısmına geliyoruz. Arkadaşlar bu yaptığımız işlem OpenCV ‘yi kullanabilmeniz için gerekli ve önemli bir işlem. Path’i bulduktan sonra OpenCV’nin içindeki bin dosyasının yolunu (E:/OpenCV…/bin şeklinde) buraya ekliyoruz. Aynı şekilde /lib klasorunun yolunu da göstermenizde fayda var (E:/OpenCV…/lib). Nereye ne koyduğumuzdan emin olmak için aşağıdaki ekran görüntüsünü incelemenizi öneririm.
Devamı...Client – Server
Merhaba arkadaşlar, sizlere bugün ilk başta anlamakta gerçekten zorlandığım fakat sonrasında ne kadar kolaymış dediğim bilgisayar ağları ve ağ programlama derslerinde görülen UDP programlamanın client ve server bilgi alışverişi mantığını anlatacağım.
Devamı...OpenCV-Cropping Image (Resmi Kesme)
Merhaba Arkadaşlar,
Sizlere bu yazımda bir resmi istediğiniz pikselden başlayarak isteğiniz bölümün nasıl alınacağını anlatacağım. Burada kullanacağımız yapılar, önceki yazılarımda olduğu gibi resmin bütün bilgilerini tutan IplImage* yapısı ve bunun bir alt yapısı olan roi (region of interest=ilgilenilen kısım). Bu iki yapının neler olduğunu bilirsek resmi kesme işlemini anlamak çok basittir. ROI ‘den daha fazla bahsedecek olursak, aslında bir dikdörgenin özelliklerini tutmaktadır. Bu yapının içindeki değişkenler x, y, height ve width’dir. Şimdi neden bu değişkenlere bu isimler verilmiş ona bakalım. Öncelikle bir dikdörgen yapısını en kolay nasıl ifade edebiliriz ona bakalım. Geometrik olarak biz dikdörtgenin başlangıç noktasını, yükseklik ve genişliğini bilirsek daha az bilgiyle dikdörtgenin diğer uç noktalarını hesaplayabiliriz (aşağıdaki şekle bakarak daha rahat anlayabilirsiniz). Eğer diktörgenin dört köşenin ayrı ayrı değerlerini tutsaydık her köşe için iki değişken(x,y) tutmak durumumdaydık, yani toplamda 8 değişken olacaktı. En optimal çözüm şekildeki gibi ifade etmektir.
OpenCV-Motion Finder,Kameradan Hareket Algılama
Merhaba Arkadaşlar,
Bu yazımda sizlerle kamerada görüntü algılamanın nasıl yapılacağı hakkında bilgi vereceğim. Aslında yaptığım işlem çok basit, iki resim arasındaki farkı buldurmak. Siz hareket ettiğinizde ekranda sizin görüntünüz belirecek. Kısaca hareket eden her nesneyi bulacak, diğerlerini göstermeyecek.
Kod çok zor anlışacak bir kod değil bu yüzden ne yapıldığını kısaca anlatacağım. 33 milisaniye içinde iki resim karesi alınıyor. Daha sonra bu iki resim arasındaki fark sizin hareketiniz oluyor. Tabi bu direkt olarak gözükmez, bunun için bir kaç filtre kullanmak gerekiyor. Filtreler konusunda ileride Türkçe olarak bir yazı hazırlayacağım. Ama ingilizce problemi olmayanlar için buradaki linke bakabilirler.
Devamı...Arduino ile C# Programı
Arkadaşlar merhaba bu yazımızda arduino ile c#’da yazılmış programı nasıl haberleştireceğimizden bahsedeceğiz. Programımız arduino üzerinde bulunan ledin yakıp söndürülmesini sağlayacaktır. Programımız iki aşamadan oluşmaktadır. Bunlardan ilki c# dili kullanılarak oluşturulmuş olan arayüz programıdır.
Devamı...OpenCV- Resmin Boyutları İle Oynama
Merhaba Arkadaşlar,
Sizlere bu yazımda OpenCV kullanarak bir resmi açıp yeniden boyutlandırma işlemini, sonrasında da resmin belli bir kısmını almayı göstereceğim. Bu neden gerekli? Örneğin resimdeki yüzleri bulmak istiyorsunuz ama resminiz baya büyük. Bu gibi bir durumda büyük resimde çalışan algoritma çok uzun sürecektir. Bu nedenle resmi belli boyutlara getirmek( ve hatta gri resimlerle çalışmak) size hız kazandıracaktır.
Devamı...
