OpenCV Filtreler

OPENCV FİLTRELER

Filtreler genellikle morfolojik işlemlerden veya thresholding işlemlerinden önce yapılır. Mobil fotoğraf düzenleme uygulamaları ve profesyonel görüntü düzenleme programlarında filtreler oldukça sık kullanılır. Bundan önceki ilk iki konuda ele alınan örneklere dikkat ederseniz çıktı olarak oluşturulan görsellerde bazı piksellerin kaydığını, silik çıktığını veya tam olarak temizlenemediğini görürsünüz. Farklı görseller ile bu örnekleri yaptıysanız benzer sonuçlarla karşılaşmışsınızdır. Bunun nedeni kaynak olarak alınan görüntünün gürültülü olması veya ışıl dengesinin bozuk olması gibi birçok durumdur. Bu sorunları aşmak için kaynak görüntüye öncelikle bir filtre uygulanır ve görüntünün işleme için en verimli hale getirilmesi sağlanır ve bu durum ön işleme olarak adlandırılır.

 

Filtreler org.opencv.imgproc paketi içerisinde yer almaktadırlar.

 

Blur

Blur filtresi görüntüyü bulanıklaştırmak için kullanılır. Uygulamak için ise blur() metodu kullanılır. Bu metot parametre olarak kaynak görüntü mat nesnesi tipinde, mat tipinde bir sonuç ve Size tipinde uygulanacak olan bulanıklık değerini almaktadır.(çekirdek boyutu olarak da adlandırılır).

Imgproc.blur(kaynakGoruntu, hedefGoruntu, new Size(50,50));

 

GaussianBlur

GaussianBlur filtresi görüntü üzerinde düzleştirme işlemi uygular. Uygulamak için GaussianBlur() metodu kullanılır. Bu metot parametre olarak kaynak görüntü mat nesnesi tipinde, mat tipinde bir sonuç ve Size tipinde uygulanacak olan bulanıklık değerini (çekirdek boyutu olarak da adlandırılır) ve SigmaX olarak adlandırılan çekirdek standart sapmasıdır almaktadır.

Imgproc.GaussianBlur(kaynakGoruntu, hedefGoruntu, new Size(100,100),0);

 

Laplace

Görüntü üzerinde nesnelerin sınır çizgilerini belirlemek için kullanılır. Piksellerin renk farklılıklarından yararlanır ve bu sayede nesnelerin sınır çizgileri tespit edilmiş olur. Uygulamak için Laplacian() metodu kullanılır. Bu metot parametre olarak kaynak görüntü mat nesnesi tipinde, mat tipinde bir sonuç ve int tipinde derinlik değeri almaktadır.

 

Imgproc.Laplacian(kaynakGoruntu, hedefGoruntu,20);

 

Sobel

Görüntü üzerindeki kenarları elde etmek için kullanılır. Görüntü üzerindeki nesneleri kenarları belirleyerek ayrıştırmak istendiğinde bu filtreden yararlanılır.  Uygulamak için Sobel() metodu kullanılır. Bu metot parametre olarak kaynak görüntü mat nesnesi tipinde, mat tipinde bir sonuç, int olarak çıkış görüntü nesnesi için derinlik ve int tipinde türev olarak adlandırılan x, y değeri.

 

Imgproc.Sobel(girisGoruntu, cikisGoruntu, ddepth, dx, dy);

 

Diğer OpenCV içerisinde bulunan filtreleri ise aşağıda yer almaktadır.

  • pyrUp()
  • pyrDown()
  • pyrMeanShiftFiltering()
  • boxFilter()
  • filter2D()
  • Scharr()
  • sepFilter2D()
  • buildPyramid()