OpenCV ile Kenar Belirleme Algoritmaları

Görüntü üzerinde kenar tespiti yapmak; o görüntüdeki nesneleri tespit etmek, saymak ve özelliklerini belirlemek amacıyla kullanılabilir. Kenar belirleme algoritmaları en temel anlatımıyla, görüntü üzerindeki piksellerin renk değerlerinin bir birlerinden farklılaşması ile belirlenir. Yukarıdaki görsele baktığınızda farklılaşmanın nereden başladığını tahmin edebilir misiniz? Gördüğünüz üzere 4 ve 152 numaralı matris elemanları arasında keskin bir renk geçişi olmuş, bu renk…

Read More

TensorFlow ile Sınıflandırıcı Eğitimi ve Görüntü Sınıflandırma

Öncelikle sınıflandırıcı eğitimine girmeden kullanacağımız kütüphaneye ve bilinmesi gereken bazı kavramlara bakalım. TensorFlow Nedir? TensorFlow , veri akış grafikleri kullanarak sayısal hesaplama için kullanılan açık kaynak kodlu bir derin öğrenme kütüphanesidir. Grafikteki düğümler, matematiksel işlemleri temsil ederken, grafik kenarları aralarında iletilen çok boyutlu veri dizilerini (tensörler) temsil eder. Esnek mimari, hesaplamayı tek bir API ile bir…

Read More

OpenCV Arka Plan Çıkarma (Background Subtraction)

Daha önce absdiff arka plan temizleme fonksiyonunu burada anlatmıştım, bu yazıda işleyeceğimiz ise absdiff fonksiyonundan farklıdır. Arka Plan Çıkarma Arka plan çıkarma işlemi görüntü işleme uygulamalarında sıklıkla kullanılan bit yöntemdir, genellikle sabit bir zemin üzerindeki hareketli nesneleri (insan, araç, ürün vb.) yakalamak ve takip etmek için kullanılır.  Bu işleyişteki mantık sabit arka planı referans alarak…

Read More

OpenCV Video Yazma (Video Writer, Codec, FourCC)

OpenCV ile video oluşturmak yani eldeki görüntü dizilerini kaydetmek için VideoWriter sınıfı kullanılmaktadır.  Kullanımına geçmeden önce bazı kavramlara bakmakta fayda var bu kavramlar codec yani kod çözücü ve FourCC (Four character code). Codec (Kod Çözücü) Ham ses ve görüntü dosyalarının boyutu oldukça büyüktür, bu sorunu çözmeni yolu ise bu verileri sıkıştırmaktır. Görüntü ve ses dosyalarını sıkıştırmak…

Read More

OpenCV 2.4.X ile 3.X Sürümü Arasındaki Farklar

Bu soru daha çok yeni başlayanlar veya projesinde hangi sürümü kullanmasına karar veremeyenler tarafından geliyor. Bu sürümleri kesin bir çizgiyle bir birinden ayırmamak gerekiyor, yani Python 2 ile Python 3 arasındaki ayrım gibi düşünülmemeli. Sürekli geliştirilen bir kütüphane ve yenilendikçe üzerine bir şeyler katıldıkça versiyonlama sisteminin doğası gereği major atlıyor. (Versiyonlama sistemlerinde x.x.x.x şeklinde giden…

Read More

Object Pool (Nesne Havuzu) Tasarım Deseni

Object pool,  dağıtık sistemlerde veya yazılım geliştirici tarafından yönetilmesi zor olan nesnelerde  kullanılabilecek bir tasarım desenidir. Creational (Yaratıcı, nesnelerin oluşturulmasına yönelik) desenler içerisinde yer almaktadır. İstenilen nesnelerin sürekli olarak üretilmesi yerine,  başlangıçta bir havuzu oluşturulur ve bu havuz nesneler ile doldurulur. Bir örnekle somutlayalım; Bir kiralık eve ihtiyacınız olduğunu varsayalım, bu durumda en kolay çözüm size…

Read More

Windows için Caffe Kurulumu

Linux işletim sistemi için Caffe kurmak oldukça kolay iken Windows için kurmak bir uğraştırıcı olabiliyor, kurulum sırasında yaşadığım bazı sorunları deneme yanılma yoluyla bulmam gerekti bu yüzden hataları ve çözümlerini de içeren bir kurulum rehberi hazırladım. Gereksinimler Windows İşletim Sistemi: 10 olması işlerinizi daha da kolaylaştırır. Visual Studio: Kaynak kodu derlemek için kullanacağız. 2013 veya…

Read More

EmguCV ile Yüz Tanıma Uygulaması

Daha önce yüz tanımaya giriş yapıp, OpenCV içerisindeki yüz tanıma algoritmalarına değinip ve JavaCV ile örnek bir yüz tanıma projesi geliştirmiştik. Bu yazıda ise Microsoft dot net için geliştirilen EmguCV kütüphanesi ile yüz tanıma uygulaması geliştireceğiz. Öncelikle okumadıysanız aşağıdaki bağlantılardan daha önceki yazıları okumanızı öneririm. EmguCV OpenCV ile Yüz Tanımaya Giriş OpenCV Yüz Tanıma Eigenfaces,…

Read More

İki Görüntü Arasındaki Benzerlik Oranı

İki görüntüyü karşılaştırmak istediğinizde bunu yapmanın farklı yöntemleri vardır. En kolay yöntemlerden biriside tek tek piksellere bakarak aynı olup olmadığını kontrol etmekttir. RGB (R Kırmızı G Yeşil B Mavi) renk uzayına sahip görüntüler üç katmandan oluşmaktadır. Görüntüyü bir matris olarak ele aldığımızda RGB renk uzayındaki görüntülerin üç katmanlı olduğunu söyleyebiliriz. Siyah beyaz veya gri renk uzayına…

Read More

OpenCV ile Görüntü İşleme Kitabı

opencv ile görüntü işleme kitabı

Bu kitap mesutpiskin.com/blog adresindeki blog yazılarımın derlenmesi ile oluşturulmuştur. Düzenleme, ekleme, görüş veya önerileriniz için e-posta adresimden benim ile iletişime geçebilirsiniz. Yer alan örnekler çoğunlukla Java ile anlatılmış yeri geldiğinde ise Python örnekleri eklenmiştir. Daha önce görüntü işleme ile uğraşmamış veya farklı kütüphaneleri kullanmış OpenCV öğrenmek isteyenlere yöneliktir. Temel kavramlardan başlayarak birçok kavram ve algoritma ele…

Read More