Keskinliği azaltan maskeleme - Unsharp masking

Görüntünün alt kısmına uygulanan keskin olmayan maskeleme

Keskinliği azaltan maskeleme ( USM ) , genellikle dijital görüntü işleme yazılımında bulunan bir görüntü keskinleştirme tekniğidir . Adı, tekniğin orijinal görüntünün bir maskesini oluşturmak için bulanık veya "keskin olmayan" bir negatif görüntü kullanması gerçeğinden kaynaklanmaktadır . Keskinliği azaltan maske daha sonra orijinal pozitif görüntüyle birleştirilir ve orijinalden daha az bulanık bir görüntü oluşturulur. Ortaya çıkan görüntü, daha net olmasına rağmen, görüntünün konusunun daha az doğru bir temsili olabilir. Sinyal işleme bağlamında, keskin olmayan bir maske genellikle bir sinyalin yüksek frekanslı bileşenlerini güçlendiren doğrusal veya doğrusal olmayan bir filtredir.

Fotoğrafik karanlık oda keskin olmayan maskeleme

Keskin olmayan maskelemenin basitleştirilmiş ilkesi

Fotoğrafik karanlık oda işlemi için, pozitif bir görüntü oluşturmak için geniş formatlı bir cam plaka negatif, düşük kontrastlı bir film veya plaka üzerine temasla kopyalanır. Bununla birlikte, pozitif kopya, emülsiyondan emülsiyona değil, kopya materyali orijinalin arkasıyla temas halindeyken yapılır , bu nedenle bulanıktır. İşlemden sonra bu bulanık pozitif, orijinal negatifin arkasıyla temas halinde değiştirilir. Işık hem negatif hem de kayıt içi pozitiften geçirildiğinde ( örneğin bir büyütücüde ), pozitif, negatifteki bilgilerin bir kısmını kısmen iptal eder.

Pozitif kasıtlı olarak bulanıklaştırıldığı için, yalnızca düşük frekanslı (bulanık) bilgiler iptal edilir. Ek olarak, maske orijinal negatifin dinamik aralığını etkili bir şekilde azaltır . Bu nedenle, elde edilen büyütülmüş görüntü kontrastlı fotoğraf kağıdına kaydedilirse , kısmi iptal, vurgu veya gölge ayrıntısı kaybı olmadan orijinaldeki yüksek uzamsal frekans bilgisini (ince ayrıntı) vurgular. Ortaya çıkan baskı, keskinliği azaltan maske olmadan yapılandan daha keskin görünür: keskinliği artar.

Fotoğraf prosedüründe, bulanıklık miktarı, ilk keskin olmayan maske pozlaması için kullanılan ışık kaynağının "yumuşaklığı" veya "sertliği" (nokta kaynaktan tam dağınıklığa) değiştirilerek kontrol edilebilirken, efektin gücü ayarlanabilir. keskin olmayan maskenin kontrastını ve yoğunluğunu (yani pozlama ve geliştirme) değiştirerek kontrol edilir.

Geleneksel fotoğrafçılık için, genellikle tek renkli malzemelerde keskin olmayan maskeleme kullanılır ; fotoğrafik renkli asetatları maskelemek için özel pankromatik yumuşak çalışan siyah beyaz filmler mevcuttur. Bu, özellikle fotomekanik çoğaltmaya yönelik bir şeffaflığın yoğunluk aralığını kontrol etmek için faydalı olmuştur .

Dijital keskinliği azaltan maskeleme

Kaynak görüntü (üstte),
keskinleştirilmiş görüntü (ortada),
yüksek düzeyde keskinleştirilmiş görüntü (altta)

Aynı fark ilkesi, Adobe Photoshop ve GIMP gibi birçok dijital görüntüleme yazılım paketindeki keskinliği azaltan maskeleme aracında kullanılır . Yazılım , orijinal görüntünün bir kopyasına Gauss bulanıklığı uygular ve ardından onu orijinaliyle karşılaştırır. Fark, kullanıcı tarafından belirlenen bir eşik ayarından büyükse, görüntüler (gerçekte) çıkarılır.

Dijital keskinliği azaltan maskeleme, özellikle taranan görüntülerde keskinliği artırmanın esnek ve güçlü bir yoludur . Ne yazık ki, istenmeyen göze çarpan kenar efektleri oluşturabilir veya görüntü parazitini artırabilir . Bununla birlikte, bu etkiler bir tek, özellikle yaratıcı kullanılabilir kanal bir bölgesinin RGB veya Lab görüntü bilenir. İstenmeyen etkiler, yalnızca istenen bölgelere keskinleştirme uygulamak için bir maske (özellikle kenar algılama ile oluşturulan) kullanılarak azaltılabilir , bazen "akıllı keskinleştirme" olarak adlandırılır.

Tipik olarak, dijital keskin olmayan maskeleme miktar, yarıçap ve eşik aracılığıyla kontrol edilir:

  • Miktar yüzde olarak listelenir ve her bir aşmanın büyüklüğünü kontrol eder (kenar sınırlarının ne kadar koyu ve ne kadar açık hale geleceğini). Bu, kenarlara ne kadar kontrast eklendiği olarak da düşünülebilir. Kenar jantlarının genişliğini etkilemez.
  • Yarıçap, iyileştirilecek kenarların boyutunu veya kenar kenarlarının ne kadar geniş olacağını etkiler, bu nedenle daha küçük bir yarıçap, daha küçük ölçekli ayrıntıları geliştirir. Daha yüksek yarıçap değerleri kenarlarda halelere, nesnelerin etrafında algılanabilir hafif bir ışık çemberine neden olabilir. İnce ayrıntı daha küçük bir yarıçapa ihtiyaç duyar. Yarıçap ve miktar etkileşime girer; birini azaltmak diğerinden daha fazlasını sağlar.
  • Eşik, keskinleştirilecek minimum parlaklık değişikliğini veya filtre herhangi bir şey yapmadan önce bitişik ton değerlerinin ne kadar uzakta olması gerektiğini kontrol eder. Bu eylem eksikliği, düz alanların benekli olmasını önlemek için önemlidir. Eşik ayarı, daha belirgin kenarları keskinleştirirken daha ince kenarlara dokunulmadan kullanılabilir. Daha az alan hariç tutulduğundan düşük değerler daha fazla keskinleştirilmelidir. Daha yüksek eşik değerleri, daha düşük kontrastlı alanları hariç tutar.

Bu parametrelerin başlangıç ​​değerleri için çeşitli öneriler mevcuttur ve anlam, uygulamalar arasında farklılık gösterebilir. Genellikle 0,5 ila 2 piksellik bir yarıçap ve %50-150'lik bir miktar önerilir.

Maske görevi görecek ayrı bir katman oluşturarak USM'yi manuel olarak uygulamak da mümkündür; bu, USM'nin nasıl çalıştığını anlamaya yardımcı olmak veya hassas özelleştirme için kullanılabilir.

Keskin olmayan maskeleme için tipik karıştırma formülü,

keskinleştirilmiş = orijinal + (orijinal - bulanık) × miktar.

Yerel kontrast geliştirme

Keskin olmayan maskeleme aynı zamanda büyük bir yarıçap ve küçük bir miktar (30-100 piksel yarıçapı ve %5-20 miktarı gibi) ile de kullanılabilir; bu, yerel kontrast geliştirme olarak adlandırılan bir teknik olan artan yerel kontrast sağlar . USM keskinliği veya (yerel) kontrastı artırabilir, çünkü bunların ikisi de değerler arasındaki artan farklar, artan eğim - keskinlik çok küçük ölçekli (yüksek frekanslı) farklılıklara atıfta bulunur ve kontrast daha büyük ölçekli (düşük frekanslı) anlamına gelir farklılıklar. Tonaliteyi geliştirmek için daha güçlü tekniklere ton eşleme denir .

dekonvolüsyon ile karşılaştırma

Görüntü işleme için, ters evrişim , bir görüntünün bulanıklaşmasına neden olan işlemin yaklaşık olarak tersine çevrilmesi işlemidir. Spesifik olarak, keskin olmayan maskeleme basit bir doğrusal görüntü işlemidir - Dirac deltası eksi bir gauss bulanıklık çekirdeği olan bir çekirdeğin evrişimidir . Öte yandan, tersine evrişim, genellikle en iyi doğrusal olmayan yaklaşımlarla çözülen, kötü tasarlanmış bir ters problem olarak kabul edilir . Keskin olmayan maskeleme, görüntünün nasıl elde edildiğini bilmeden görüntünün görünür keskinliğini artırırken, ters evrişim görüntünün görünür keskinliğini artırır, ancak kullanılan ışık yolundaki bozulmaların olası kökenlerinden bazılarını açıklayan bilgilere dayanır. görüntüyü yakalarken; bu nedenle, hazırlık süresindeki ve görüntü başına hesaplama süresindeki maliyetin görüntü netliğindeki artışla dengelendiği durumlarda bazen tercih edilebilir.

Geri evrişimle, "kayıp" görüntü ayrıntısı yaklaşık olarak geri kazanılabilir, ancak kurtarılan herhangi bir ayrıntının doğru olduğunu doğrulamak genellikle imkansızdır. İstatistiksel olarak, keskinleştirilmiş görüntüler ile görüntülenmekte olan gerçek sahneler arasında bir düzeyde benzerlik elde edilebilir. Gelecekte yakalanacak sahneler, doğrulanmış görüntü sahnelerine yeterince benzerse, kurtarılan ayrıntıların ne kadar doğru olabileceği değerlendirilebilir. Aynı doğrulama sorunları, geliştirilmemiş görüntüler için bile mevcut olduğundan, görüntü kalitesindeki iyileştirme genellikle çekicidir.

Dekonvolüsyonun etkili olması için, görüntü sahnesindeki ve yakalama cihazındaki tüm değişkenlerin, diyafram , odak uzaklığı , özneye olan mesafe, lens ve ortam kırılma indeksleri ve geometrileri dahil olmak üzere modellenmesi gerekir . Sahnenin geometrileri ayarlanmadığından, genel amaçlı kamera görüntülerine başarılı bir şekilde ters evrişim uygulamak genellikle mümkün değildir. Bununla birlikte, tersine evrişim gerçekte, kazanılan keskinliğin değerinin yüksek olduğu, görüntüleme cihazlarının ve ilgili konu konumlarının iyi tanımlandığı ve görüntüleme cihazlarının keskinliği iyileştirmek için optimizasyonunun fiziksel olarak önemli ölçüde daha pahalıya mal olacağı mikroskopi ve astronomik görüntülemeye uygulanır. Erken Hubble Uzay Teleskobu görüntülerindeki mercek kusuru gibi kararlı, iyi tanımlanmış bir sapmanın olduğu durumlarda , ters evrişim özellikle etkili bir tekniktir.

uygulama

Aşağıdaki örnekte, görüntü aşağıdaki keskinleştirme filtresiyle kıvrılmıştır:

Keskinleştirme filtresi

Bu matris, kimlik çekirdeği alınarak ve bir kenar algılama çekirdeği çıkarılarak elde edilir:

- =

Keskinleştirme etkisi, kenar algılamanın katkısı değiştirilerek kontrol edilebilir .

İkinci görüntü, birincinin iki katı kadar keskinleştirildi.

Bu, bu çekirdeğin İşleme'deki (Java) olası bir uygulamasıdır.

float sharpenForce = 1;
float[][] kernel =  {{ 0, -1*sharpenForce, 0}, 
                     { -1*sharpenForce, (4*sharpenForce) +1,-1 *sharpenForce}, 
                     { 0, -1*sharpenForce, 0}};
   
PImage image;

void setup() {
    size(1920, 1080);
    image = loadImage("Car.jpg");
    noLoop();
}

void draw() {
    image(image, 0, 0); 
    image.loadPixels();
    PImage NewImage = createImage(image.width, image.height, RGB);
  
    for (int Y = 1; Y < image.height-1; Y++ ) {
        for (int X = 1; X < image.width-1; X++) {
            int newPixelValueR = 0;
            int newPixelValueG = 0;
            int newPixelValueB = 0;
             
            for (int YK = -1; YK < 2; YK++) {   
                for (int XK = -1; XK < 2; XK++) {
                    int PixelPosition = (Y+YK) * image.width + (X+XK);
                    float PixelValueR = red(image.pixels[PixelPosition]);
                    float PixelValueG = green(image.pixels[PixelPosition]);
                    float PixelValueB = blue(image.pixels[PixelPosition]);
                    newPixelValueR += kernel[YK+1][XK+1] * PixelValueR;
                    newPixelValueG += kernel[YK+1][XK+1] * PixelValueG;
                    newPixelValueB += kernel[YK+1][XK+1] * PixelValueB;
                }
            }
                
            NewImage.pixels[Y*image.width + X] = color(newPixelValueR, newPixelValueG, newPixelValueB);
        }
    }
    
    NewImage.updatePixels();
    image(NewImage, width/2, 0);
}

Ayrıca bakınız

Referanslar

Dış bağlantılar