4.11. Debayering¶
Ham Bayer çerçevesi her piksel için yalnızca tek bir renk kanalı taşır. Bunu normal bir üç kanallı RGB görüntüye dönüştürmek, her pikseldeki eksik iki kanalı doğru renkteki yakın piksellerden enterpolasyon yaparak doldurmak anlamına gelir. Bu enterpolasyon işlemine debayering (demosaicing olarak da adlandırılır) denir. Bir avuç algoritma ailesi bu alana hâkimdir.
4.11.1. Süper piksel¶
En ucuz yaklaşım, her 2x2 Bayer karosunu – bir kırmızı hücre, bir mavi hücre ve iki yeşil hücre – tek bir çıkış pikseline indirger:
kırmızı kanal, kırmızı hücrenin değeridir;
mavi kanal, mavi hücrenin değeridir;
yeşil kanal, iki yeşil hücrenin ortalamasıdır.
Her 2x2 giriş karosu tek bir çıkış pikseline dönüşür, dolayısıyla tamamlanan görüntü sensörün genişliğinin ve yüksekliğinin yarısı kadar olur ve piksel sayısının dörtte birine sahiptir. Süper piksel hızlıdır ve enterpolasyon yapaylıklarından arınmıştır, ancak çözünürlük maliyeti onu son çare hâline getirir – nadiren kullanılır.
4.11.2. Bilineer¶
Bilineer enterpolasyon, kopyalamak veya özetlemek yerine doğru renkteki en yakın pikselleri ortalar. Tam ortalama, merkez pikselin hangi rengi kaydettiğine bağlıdır, çünkü dört durum eksik kanalları 3x3 komşulukta farklı şekilde dağıtır.
Kırmızı-yeşil satırdaki yeşil piksel. Eksik kırmızı değer, soldaki ve sağdaki iki kırmızı komşunun ortalamasını alır; eksik mavi ise yukarıdaki ve aşağıdaki iki mavi komşunun ortalamasını alır.
Eksik kırmızı, yatay kırmızı komşulardan gelir; eksik mavi ise dikey mavi komşulardan gelir.¶
Yeşil-mavi satırdaki yeşil piksel. Kırmızı ve mavi yer değiştirmiş aynı şekil. Eksik kırmızı değer, yukarıdaki ve aşağıdaki iki kırmızı komşunun ortalamasını alır; eksik mavi ise soldaki ve sağdaki iki mavi komşunun ortalamasını alır.
Eksik kırmızı, dikey kırmızı komşulardan gelir; eksik mavi ise yatay mavi komşulardan gelir.¶
Kırmızı piksel. Eksik yeşil değer, dört ana yön yeşil komşunun (yukarı, aşağı, sol, sağ) ortalamasını alır. Eksik mavi ise dört çapraz mavi komşunun ortalamasını alır.
Eksik yeşil, dört ana yön yeşil komşudan gelir; eksik mavi ise dört çapraz mavi komşudan gelir.¶
Mavi piksel. Kırmızı durumun aynadaki yansıması. Eksik yeşil, dört ana yön yeşil komşunun ortalamasını alır ve eksik kırmızı, dört çapraz kırmızı komşunun ortalamasını alır.
Eksik yeşil, dört ana yön yeşil komşudan gelir; eksik kırmızı ise dört çapraz kırmızı komşudan gelir.¶
Bilineer, sensörün tam çözünürlüğünü korur ve çoğu kullanım için yeterince yumuşaktır, ancak yine de kenarlarda yapaylıklar gösterir. İki renk arasındaki keskin bir geçiş piksel ızgarasını belirli bir yönelimde kateder ve kenar boyunca ortalama almak onu hafifçe yumuşatır. Renk ve parlaklık kenarlarının tam olarak hizalanmadığı yerlerde, çıktıda soluk renkli saçaklanmalar ortaya çıkar.
4.11.3. Bilineerin ötesinde¶
Daha iyi bir dizi debayer algoritması mevcuttur. Bazıları bilineerin küçük aynı-renk komşu artısından daha büyük komşuluklar kullanır ve örnekleri daha özenle seçilmiş katsayılarla ağırlıklandırır; diğerleri yerel kenarların yönünü tespit eder ve enterpolasyonu o yön boyunca eğer, böylece piksel ızgarasını kateden bir kenar yumuşamak yerine keskin kalır. Her iki yaklaşım da bilineerin geride bıraktığı renk saçaklanmalarını ve kenar yumuşamasını azaltır; bunun karşılığında piksel başına daha fazla aritmetik ve daha fazla silikon (veya MCU tarafında daha fazla hesaplama) gerektirir.
Herhangi bir OpenMV Cam üzerinde mevcut olan debayer kalitesi platforma özgüdür – o kameradaki sensör ve MCU’nun neler sunduğuna bağlıdır.
4.11.4. Debayering nerede çalışır¶
Görüntü sinyal işlemcisi (ISP) – sensör yongasının kendisinde ya da MCU tarafında – çoğu durumda her çerçeveyi görüntüleme hattından çıkmadan önce debayer eder. Kullanıcı kodu, ham mozaiğe hiç dokunmadan tamamlanmış bir üç kanallı RGB görüntü alır.
ISP’ye, ham Bayer çerçevesini değiştirmeden geçirmesi de söylenebilir. Ham Bayer, debayer edilmiş görüntüden daha az bellek kaplar – piksel başına üç bayt yerine bir bayt – bu da çerçeve depolama darboğaz olduğunda, çevrimdışı işleme için yakalama yaparken ya da proje yazılımda özel bir debayer algoritması uygulamak istediğinde onu kullanışlı kılar.