flowchart LR A[Gaussian Blur] --> B[Gradyan Hesabı - Sobel] B --> C[Non-Maximum Suppression] C --> D[Double Thresholding] D --> E[Hysteresis] E --> F[Kenar Haritası]
Kenar Bulma
2026
Kenar tespiti, bir görüntüde yoğunluk değişiminin (parlaklık farkının) en belirgin olduğu yerleri bulmak için kullanılan bir tekniktir.
Kenarlar genellikle:
Bu derste kenar tespitini aşamalı olarak alacağız:
Temel Fikir (Gradyan): Kenarların, görüntünün türevini (yoğunluk değişimi) alarak bulunabileceği temel matematiksel fikri anlayacağız.
İlk Denemeler (Sobel, Prewitt): Bu temel fikri, konvolüsyon kullanarak basitçe uygulayan ilk operatörleri inceleyeceğiz. Hızlı ama gürültülü sonuçlar verdiğini göreceğiz.
Zirve Noktası (Canny): Ardından, basit yaklaşımların tüm zayıflıklarını gidermek için tasarlanmış, çok adımlı ve akıllı bir algoritma olan Canny’yi keşfedeceğiz. Neden endüstri standardı olduğunu adım adım anlayacağız.
Kenar tespiti, bir görüntüdeki yoğunluk değişimini ölçmeye dayanır.
Bu değişim çoğunlukla gradyan ile ifade edilir:
\[ \|\nabla I\| = \sqrt{\left(\frac{\partial I}{\partial x}\right)^2 + \left(\frac{\partial I}{\partial y}\right)^2} \]
Gradyan büyüdükçe, piksel çevresindeki değişim daha ani hâle gelir.
Bu nedenle büyük gradyan değerleri, kenar adayı bölgeleri gösterir.
Not: Gradyan yönü, değişimin en fazla olduğu yönü gösterir; bu yön genellikle kenara diktir.
Aşağıdaki başlıca yöntemlerle kenar tespiti yapılır:
| Yöntem | Açıklama |
|---|---|
| Sobel | X ve Y yönündeki değişimi yaklaşık hesaplar; en yaygın temel yöntemlerden biridir |
| Prewitt | Sobel’e benzer, daha basit çekirdekler kullanır |
| Roberts | Çapraz yönlerde türev alır; küçük kernel ile hızlı çalışır |
| Laplacian | İkinci türeve dayanır; yön bilgisi vermez |
| Canny | Gürültü azaltma, gradyan, bastırma ve eşikleme adımlarını birleştiren çok aşamalı yöntemdir |
| Yöntem | Avantaj | Dezavantaj |
|---|---|---|
| Sobel | Basit, anlaşılır, yön bilgisi sağlar | Gürültüden etkilenebilir |
| Prewitt | Yapısı sade, hesaplaması kolay | Sobel’e göre daha zayıf tepki verebilir |
| Roberts | Küçük kernel, hızlı hesaplama | Gürültüye oldukça duyarlıdır |
| Laplacian | Yönsüz kenar tepkisi verir, ikinci türev mantığını gösterir | Gürültüye hassastır, genellikle önce yumuşatma gerekir |
| Canny | İnce ve daha güvenilir kenar haritası üretir | Hesaplama maliyeti daha yüksektir, eşik seçimi önemlidir |
Kenar tespit operatörleri, görüntüde yoğunluğun hızlı değiştiği bölgelerde yüksek değer, daha durağan bölgelerde ise düşük değer üretir.
Sonuçta elde edilen görüntüye kenar haritası denir.
Kenar haritası, orijinal görüntünün kendisi değil; kenar olasılığını veya kenar gücünü gösteren yeni bir çıktıdır.
Sobel operatörü, bir görüntüdeki yoğunluk değişimini x ve y yönlerinde yaklaşık hesaplayan, birinci türev tabanlı bir kenar tespit yöntemidir.
Gradyan büyüklüğü:
\[ G = \sqrt{G_x^2 + G_y^2} \]
Yaklaşık olarak:
\[ G \approx |G_x| + |G_y| \]
\[ G_x = \begin{bmatrix} -1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \end{bmatrix} \]
\[ G_y = \begin{bmatrix} -1 & -2 & -1 \\ 0 & 0 & 0 \\ 1 & 2 & 1 \end{bmatrix} \]
Her piksel üzerinde bu çekirdeklerle konvolüsyon uygulanır.
Elde edilen \(G_x\) ve \(G_y\) değerleri birleştirilerek toplam kenar gücü hesaplanır.
| Özellik | Açıklama |
|---|---|
| Türev türü | 1. türev tabanlıdır |
| Yön bilgisi | X ve Y yönleri ayrı ayrı elde edilir |
| Gürültüye duyarlılık | Orta düzeydedir |
| Hesaplama maliyeti | Düşüktür |
| Kenar hassasiyeti | Orta düzeydedir |
| Çekirdek boyutu | Genellikle 3×3 kullanılır |
Sobel, temel mantığı öğretmek için en uygun operatörlerden biridir.
Bu örnekte sol taraf koyu, sağ taraf parlaktır. Dolayısıyla görüntüde belirgin bir dikey kenar vardır.
\[ A = \begin{bmatrix} 10 & 10 & 100 \\ 10 & 10 & 100 \\ 10 & 10 & 100 \end{bmatrix} \]
\[ G_x = \begin{bmatrix} -1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \end{bmatrix} \qquad G_y = \begin{bmatrix} -1 & -2 & -1 \\ 0 & 0 & 0 \\ 1 & 2 & 1 \end{bmatrix} \]
\[ G_x = (-1 \cdot 10) + (0 \cdot 10) + (1 \cdot 100) + (-2 \cdot 10) + (0 \cdot 10) \\ + (2 \cdot 100) + (-1 \cdot 10) + (0 \cdot 10) + (1 \cdot 100) \\ \]
\[ G_x = (-10 + 0 + 100) + (-20 + 0 + 200) + (-10 + 0 + 100) \]
\[ G_x = 90 + 180 + 90 = 360 \]
Sonuç büyük çıktığı için x yönünde güçlü bir değişim vardır.
Bu da dikey kenar bulunduğunu gösterir.
\[ G_y = (-1 \cdot 10) + (-2 \cdot 10) + (-1 \cdot 100) + (0 \cdot 10) + (0 \cdot 10) \\ + (0 \cdot 100) + (1 \cdot 10) + (2 \cdot 10) + (1 \cdot 100) \\ \]
\[ G_y = (-10 -20 -100) + (0 + 0 + 0) + (10 + 20 + 100) \\ G_y = -130 + 0 + 130 = 0 \]
\[ G = \sqrt{G_x^2 + G_y^2} = \sqrt{360^2 + 0^2} = 360 \]
Bu örnekte Sobel operatörü, görüntüdeki dikey kenarı başarılı şekilde ortaya çıkarmıştır.
Sobel operatörü pratik ve yaygın bir yöntemdir; ancak özellikle küçük çekirdek boyutlarında, tüm yönlere karşı tam simetrik davranmaz.
Bu nedenle bazı diyagonal kenarlarda gradyan hesabı istenen kadar dengeli olmayabilir.
Scharr operatörü, bu sorunu azaltmak için geliştirilmiş, Sobel’e çok benzeyen fakat daha iyi rotasyonel simetri sağlayan bir 3×3 gradyan operatörüdür.
\[ G_x = \begin{bmatrix} -3 & 0 & 3 \\ -10 & 0 & 10 \\ -3 & 0 & 3 \end{bmatrix} \qquad G_y = \begin{bmatrix} -3 & -10 & -3 \\ 0 & 0 & 0 \\ 3 & 10 & 3 \end{bmatrix} \]
Not: Sobel’deki ağırlıklara benzer bir yapı kullanılır; ancak katsayılar, yönler arası tepki dengesini iyileştirecek şekilde yeniden düzenlenmiştir.
| Özellik | Sobel | Scharr |
|---|---|---|
| Temel amaç | Gradyan hesaplama | Gradyan hesaplama |
| Çekirdek boyutu | Genellikle 3×3 | Genellikle 3×3 |
| Rotasyonel simetri | Daha sınırlı | Daha iyi |
| Diyagonal kenarlara tepki | Orta | Daha dengeli |
| Kullanım yaygınlığı | Çok yaygın | Daha özel durumlarda tercih edilir |
Pratik yaklaşım: Çoğu durumda önce Sobel ile başlanır. Daha dengeli ve hassas bir gradyan hesabı gerektiğinde Scharr iyi bir alternatiftir.
OpenCV’de Kullanımı: OpenCV, Scharr için özel bir fonksiyona sahiptir: cv2.Scharr(). Tıpkı cv2.Sobel() gibi kullanılır.
Roberts Cross operatörü, kenar tespiti için kullanılan en eski gradyan tabanlı yöntemlerden biridir.
Roberts operatörü, komşu pikseller arasındaki farkı iki çapraz doğrultuda hesaplar:
Böylece görüntüdeki ani yoğunluk değişimleri belirgin hâle gelir.
\[ G_1 = \begin{bmatrix} 1 & 0 \\ 0 & -1 \end{bmatrix} \]
\[ G_2 = \begin{bmatrix} 0 & 1 \\ -1 & 0 \end{bmatrix} \]
Bu çekirdekler klasik Sobel veya Prewitt gibi yatay-dikey değil, çapraz yönlü fark üretir.
Roberts operatöründe toplam kenar gücü genellikle şu şekilde hesaplanır:
\[ G = \sqrt{G_1^2 + G_2^2} \]
Pratikte daha hızlı bir yaklaşık hesap da kullanılabilir:
\[ G \approx |G_1| + |G_2| \]
Gradyan değeri büyüdükçe, o bölgede yoğunluk değişimi daha belirgin demektir.
| Özellik | Açıklama |
|---|---|
| Basitlik | 2×2 çekirdek yapısı sayesinde uygulanması çok kolaydır |
| Hız | Az sayıda işlem gerektirir |
| Ani değişimlere tepki | Keskin geçişlerde hızlı yanıt verebilir |
| Gürültüye duyarlılık | Çok küçük komşuluk kullandığı için gürültüden kolay etkilenir |
| Kararlılık | Daha büyük çekirdekli yöntemlere göre daha az dengeli sonuç verebilir |
Roberts Cross operatörü günümüzde çoğu zaman tek başına tercih edilmez.
Buna rağmen şu durumlarda anlamlı olabilir:
Modern uygulamalarda genellikle Sobel, Scharr veya Canny gibi yöntemler daha yaygın tercih edilir.
Bu nedenle Roberts operatöründen önce yumuşatma (örneğin Gaussian blur) uygulanması çoğu zaman faydalıdır.
Şimdiye kadar gördüğümüz operatörler (Sobel, Scharr vb.) görüntünün birinci türevine dayanıyordu.
Bu operatörler, yoğunluğun en hızlı değiştiği bölgeleri bulmaya çalışır.
Laplacian operatörü ise ikinci türevi kullanır.
Bir kenarı 1 boyutlu bir sinyal gibi düşünelim:
Laplacian çıktısındaki büyük değerler tek başına yeterli değildir; asıl önemli bilgi çoğu zaman işaret değişimidir.
Bir bölgede Laplacian çıktısı:
ise, arada bir sıfır geçişi vardır.
Bu geçiş, çoğu durumda bir kenarın bulunduğu bölgeyi işaret eder.
İkinci türevi yaklaşık hesaplamak için yaygın olarak şu çekirdekler kullanılır:
\[ K = \begin{bmatrix} 0 & 1 & 0 \\ 1 & -4 & 1 \\ 0 & 1 & 0 \end{bmatrix} \]
\[ K = \begin{bmatrix} 1 & 1 & 1 \\ 1 & -8 & 1 \\ 1 & 1 & 1 \end{bmatrix} \]
Dikkat: Bu çekirdeklerin eleman toplamı sıfırdır. Bu, sabit yoğunluklu bölgelerde tepkinin sıfır olmasına yardımcı olur.
| Özellik | Açıklama |
|---|---|
| Türev türü | 2. türev tabanlıdır |
| Yön bilgisi | Yön vermez, yön bağımsız tepki üretir |
| Kenar tespiti | Çoğu zaman zero-crossing ile yorumlanır |
| Gürültüye duyarlılık | Çok yüksektir |
| Hesaplama maliyeti | Düşüktür |
Problem:
İkinci türev, gürültüye karşı çok hassastır.
Görüntüdeki küçük dalgalanmalar bile güçlü tepkiler üretebilir.
Bu nedenle Laplacian, çoğu zaman doğrudan ham görüntüye uygulanmaz.
Daha güvenilir sonuç almak için önce görüntü yumuşatılır, sonra Laplacian uygulanır.
Bu yaklaşıma Laplacian of Gaussian (LoG) denir.
Özet fikir: Önce gürültüyü bastır, sonra ikinci türev uygula.
Bu nedenle LoG, Laplacian’ın pratikte daha kullanışlı hâle getirilmiş biçimi olarak düşünülebilir.
| Yöntem | Temel yaklaşım |
|---|---|
| Sobel / Scharr | 1. türev ile gradyan büyüklüğünü ölçer |
| Laplacian | 2. türev ile işaret değişimini inceler |
| LoG | Önce yumuşatır, sonra Laplacian uygular |
Canny ile LoG aynı yöntem değildir; ancak ikisi de kenar tespitinden önce gürültüyü azaltma fikrini paylaşır.
Canny, çok adımlı ve gürültüye karşı daha dayanıklı bir kenar algılama yöntemidir.
Canny yöntemi üç temel hedefe göre tasarlanmıştır:
Sobel gibi temel operatörler, kenar olabilecek birçok bölgeyi ortaya çıkarır; ancak sonuçlar çoğu zaman: kalın, gürültülü ve dağınık olabilir.
Canny ise bu adayları işleyerek daha temiz bir kenar haritası üretir:
Yani Canny, yalnızca “değişimi bulmaz”; bu değişimin gerçekten anlamlı bir kenar olup olmadığını da değerlendirir.
İlk aşamada görüntü yumuşatılır.
Bu adım, küçük ve anlamsız dalgalanmaların güçlü kenar gibi görünmesini azaltır.
Yumuşatılmış görüntü üzerinde gradyan hesaplanır.
Gradyan yönü, genellikle kenara diktir.
Bu adımın amacı, kalın kenar bantlarını ince ve keskin çizgilere dönüştürmektir.
Böylece yalnızca kenarın en güçlü hattı korunur.
Sonuç: Kalın kenarlar yerine yaklaşık 1 piksellik ince kenarlar elde edilir.
Bu aşamada iki eşik değeri kullanılır:
Bu yaklaşım, tek eşik kullanımına göre daha esnektir.
Son aşamada zayıf kenarlar değerlendirilir:
Bu sayede:
flowchart LR A[Gaussian Blur] --> B[Gradyan Hesabı - Sobel] B --> C[Non-Maximum Suppression] C --> D[Double Thresholding] D --> E[Hysteresis] E --> F[Kenar Haritası]
Bu derste ne öğrendik?
Bilgisayarla Görü – OMÜ | 🏠