本站提供正體中文版。切換到正體中文本站提供简体中文版。切换到简体中文This site is available in English.View in Englishこのサイトには日本語版があります。日本語で表示이 사이트는 한국어로도 제공됩니다.한국어로 보기Diese Website ist auch auf Deutsch verfügbar.Auf Deutsch ansehenEste sitio web también está disponible en español.Ver en españolQuesto sito è disponibile anche in italiano.Visualizza in italianoCe site est également disponible en français.Afficher en françaisEste site também está disponível em português.Ver em portuguêsDeze website is ook beschikbaar in het Nederlands.In het Nederlands bekijkenЭтот сайт также доступен на русском языке.Смотреть на русскомयह वेबसाइट हिन्दी में भी उपलब्ध है।हिन्दी में देखेंهذا الموقع متاح أيضًا باللغة العربية.عرض بالعربيةSitus ini juga tersedia dalam bahasa Indonesia.Lihat dalam bahasa IndonesiaTa strona jest dostępna także po polsku.Wyświetl po polskuTrang web này cũng có phiên bản tiếng Việt.Xem bằng tiếng Việtاین وب‌سایت به فارسی هم در دسترس است.مشاهده به فارسی

Yıldız Küçültme ve Yıldızların İşlenmesi: Yöntemlerin Evrimi ve PixelMath Uygulaması

Germe ve doğrusal olmayan aşama2021.01

Yıldızları uygun ölçüde küçültmek, fotoğrafın asıl konusunu daha belirgin hâle getirir; özellikle Samanyolu bölgesi gibi yıldızların yoğun olduğu alanlarda, hiçbir şey yapılmazsa gökyüzünü dolduran yıldızlar bulutsu dokusunu ciddi biçimde bozar. Bu yazıda yıldız küçültme yöntemlerini, ilk yılların erozyon filtrelerinden bugünün ana akımı olan yıldızsız görüntü yöntemine ve PixelMath uygulamasına kadar baştan sona derledim.

Eski yöntem: erozyon (Erosion) ile yıldız küçültme

En erken yıldız küçültme yöntemi erozyona (Erosion) dayanıyordu: Photoshop’ta “Minimum” filtresiyle ya da PixInsight’ta Erosion ile seçili bölgedeki yıldızlar aşındırılır ve yıldızlar küçülür. Daha titiz davranmak isteyenler bunu bir kenar maskesiyle birlikte kullanır, böylece yıldız çekirdeklerine kadar aşınma olmaz.

Açıkçası, eskiden pek yıldız küçültmezdim; çünkü geleneksel Erosion çoğu zaman yıldızları bozuyordu (örneğin yuvarlak yıldızları baklava dilimine çeviriyor ya da elmas biçimli yıldızları mahvediyordu). Ama Samanyolu bölgesinde yer alan Büyük Carina Bulutsusu gibi bazı hedeflerde, yıldız maskesi ne kadar iyi hazırlanırsa hazırlansın sonuçta bulutsu dokusunu bozan bir yığın yıldız kalıyor; işte o zaman yıldızları küçültmekten başka çare olmuyor. Tam da bu yüzden erozyonla küçültmenin en büyük zayıf noktası, maske kalitesine aşırı duyarlı olmasıdır: maske iyi hazırlanmazsa yıldız çekirdeklerinde ve çevresinde kolayca artefakt oluşur.

İlk yıllarda StarNet++ maskesiyle birlikte yapılan yıldız küçültmenin öncesi ve sonrası karşılaştırması (Büyük Carina Bulutsusu)

Dönüm noktası: yıldızsız görüntüyle yıldız küçültmek

Zamanın ilerlemesiyle birlikte yıldız küçültme yavaş yavaş bir kaydırıcıyı çekmekle biten, hangi büyüklük sınıfındaki yıldızların küçültüleceği serbestçe ayarlanabilen bir işe dönüştü. İşin püf noktası şu: insanlar yıldız çıkarma araçlarını (StarNet++ gibi) yalnızca yıldızları çıkarmak için değil, yıldızları küçültmek için de kullanmaya başladı. 2021 yılına gelindiğinde her şey script hâline getirildikten sonra iş daha da kolaylaştı; Photoshop’un “Minimum” filtresi ya da PI içindeki Erosion artık pek rağbet görmüyordu.

PI içinde kullanıma hazır bir yıldız küçültme script dosyası ortaya çıktı. Bu script “Minimum” filtresini veya Erosion’ı kullanmıyor, amacına StarNet++ ile Contour Mask birleşimiyle ulaşıyor.

StarNet++ temelli, script dosyasıyla yapılan yıldız küçültmenin şeması

Bu arada, kolayca yanlış anlaşılan bir noktayı da açıklığa kavuşturayım: StarNet++ içindeki “Create star mask” seçeneğinin ürettiği şey aslında bir maske değil, çıkarılan yıldızların ta kendisidir. Bu star_mask dosyasını PI içindeki PixelMath ya da Photoshop’taki katmanlarla yıldızları çıkarılmış görüntüye geri eklerseniz, yıldızları hiç çıkarılmamış orijinal görüntüyle neredeyse aynı olan bir sonuç elde edersiniz.

StarNet++ tarafından üretilen “star mask” aslında yıldızların kendisidir; geri eklendiğinde görüntü yeniden elde edilir

Küçültmeden sonra yıldızların boyutu hep aynı mı olur?

Bir astrofotoğraf meraklısı arkadaş bir keresinde, yıldız küçültmeden sonra yıldızların hepsinin aynı boyutta olduğunu söylemişti. Gerçekten öyle mi? Aslında hayır — küçültülmüş bir yıldızın boyutu esas olarak orijinal yıldız boyutuna ve yıldız küçültme maskesine bağlıdır.

Uygulamada her küçültmede hangi tür yıldızların küçültüleceği seçilir (ağırlıklı olarak küçük ve orta boy yıldızlar) ve yıldız boyutlarına uygun bir maske hazırlanır; bu yüzden küçültmeden sonra da yıldız boyutları birbirinden farklı olabilir, yalnızca yıldızların çevresinden küçültmenin izleri fark edilebilir. Örnek olarak SL 17’nin büyütülmüş görüntüsünü ele alalım: bu, toplam iki kez yapılan yıldız küçültmenin sonucudur (şimdiye kadar ikiden fazlasını hiç yapmadım).

Küçültmeden sonra yıldız boyutları hâlâ farklıdır ve çevrelerinden küçültmenin izleri görülebilir (SL 17)

SL 17’nin büyütülmüş görünümünde iki kez yapılan küçültmenin etkisi

Yıldızsız görüntü yöntemiyle küçültme, daha doğal bir yıldız sonucu verir

Yıldız küçültmenin öncesi ve sonrasının bölgesel karşılaştırması

PixelMath ile yıldız küçültme uygulaması (doğrusal olmayan durum)

Yıldızsız görüntüyle yıldız küçültme işi, PI içinde PixelMath kullanılarak hassas biçimde yapılabilir. Adımlara ayrılmış hâli şöyle:

  1. Görüntü dosyası A’yı ve A’nın yıldızsız görüntü dosyası B’yi hazırlayın.
  2. STF ile HistogramTransformation’ı birlikte kullanarak A ve B’nin parlaklığını aynı anda düşürün (midtone değerini sağa kaydırın).
  3. Parlaklığı düşürülmüş A ve B’nin tersini alın (klavyeden Ctrl+I).
  4. Tersi alınmış A’yı tersi alınmış B’ye bölerek tersi alınmış yıldız görüntüsü C’yi elde edin (PixelMath).
  5. C’yi B’nin tersiyle çarparak küçültülmüş yıldız görüntüsünün tersi olan D’yi elde edin (PixelMath).
  6. D’nin tersini alarak normal, yıldızları küçültülmüş görüntüye geri dönün (Ctrl+I).

Bunlardan 5. ve 6. adımlar aslında screen blending mode formülünün ta kendisidir. Küçültmenin daha güçlü olmasını isterseniz 2. adımda A ve B’nin parlaklığını daha da düşürebilirsiniz. Şematik formül şöyle:

afterimage = ~((~mtf_low(beforeimage) / ~mtf_low(starless)) * ~starless)

PixelMath ile yıldız küçültmenin adım adım şeması

Aynı yöntem Photoshop veya Affinity Photo içinde de yeniden üretilebilir; fark, işin katmanlarla yapılması ve katmanlar arasındaki karışım modlarının (blending mode) da biraz farklı olmasıdır.

PixelMath ile yapılan yıldız küçültmenin Photoshop katmanlarıyla yeniden üretilmesi ve her katmanın karışım modunun belirtilmesi

Anahtar nokta: yıldızlar “ters bölme” ile doğru biçimde çıkarılmalı

Birçok kişi görüntüsünü yıldızsız yöntemle işliyor, ama en sonunda yıldızları geri eklerken başarısız oluyor; işin can alıcı noktası, yıldızların nasıl elde edildiğidir.

Yıldızları elde etmek için yıldızsız görüntüyü orijinal görüntüden yalnızca çıkarıp sonra bu yıldızları geri eklerseniz, sonuç çoğu zaman sönük ve rengi yanlış yıldızlar olur; sanki katmanın opaklığını düşürmüşsünüz gibi görünür. Bunun nedeni, yıldız içeriğinin bir kısmının yıldızsız görüntüde kalmış olması, yani çıkarma işleminin yıldızları eksiksiz olarak alamamasıdır.

Daha iyi yöntem, eksiksiz yıldızları ters bölmeyle (inverted division) elde etmektir; yıldızsız görüntünün işlenmesi bittikten sonra yıldızlar çarpma ya da ters çarpma (screen blending mode) ile geri konur.

Yıldızları çıkarma işlemiyle almak (üstte) ile ters bölmeyle almak (altta) arasındaki farkın karşılaştırması

Doğrusal ve doğrusal olmayan: alma ve geri koyma formülleri farklıdır

RC Astro, StarXTerminator (SXT) programını çıkardıktan sonra yıldız çıkarmanın uygulama alanı doğrusal olmayan durumdan doğrusal duruma kadar genişledi. Ancak doğrusal ve doğrusal olmayan durumlarda yıldızları alma ve geri koyma adımları ile formülleri yine de biraz farklıdır; bu nokta çoğu zaman gözden kaçar.

Doğrusal olmayan durum (görüntü zaten büyük ölçüde gerilmiştir, pikseller arasında artık orijinal doğrusal ilişki yoktur):

  • Yıldızları alma: SXT içinde “Unscreen Stars” kutusunu işaretleyin ya da yıldızları çıkardıktan sonra ters bölme formülü ~(~Original_Nebula / ~Starless_Nebula) ile yıldızları elde edin.
  • Yıldızları geri koyma: PixelMath’te ters çarpma formülü ~(~Nebula * ~stars) kullanın; bu da Screen Blending işleminin matematiksel formülüdür.

Doğrusal durum (entegrasyondan sonra, büyük ölçekli germeden önce, pikseller arasında orijinal doğrusal ilişkinin sürdüğü durum):

  • Yıldızları alma: SXT içinde “Unscreen Stars” kutusunu işaretlemeyin.
  • Yıldızları geri koyma: PixelMath’te toplama formülü Nebula + stars kullanın.

Doğrusal ve doğrusal olmayan durumda yıldızları alma ve geri koyma formüllerinin karşılaştırması

Görüntünüzün hangi durumda olduğunu netleştirir ve yıldızları buna karşılık gelen formüllerle alıp geri koyarsanız, yıldızların geri konduktan sonra kararması, renginin değişmesi ya da işlemin tamamen başarısız olması sorunundan kaçınabilirsiniz.