มีภาพเพียงสองภาพ จะทำ Stacking ด้วย PixelMath ได้อย่างไร
เวลา Stacking ภาพ บางครั้งก็เจอสถานการณ์ที่น่าอึดอัดใจอย่างหนึ่ง คือมีภาพอยู่ในมือเพียงสองภาพ ImageIntegration ของ PixInsight มีเกณฑ์ขั้นต่ำอยู่อย่างหนึ่ง คือต้องมีภาพอย่างน้อยสามภาพขึ้นไปจึงจะยอมทำงาน ถ้าอย่างนั้นมีแค่สองภาพ จะไม่มีทางทำ Stacking ได้เลยหรือ? ที่จริงมีทาง เราสามารถข้าม ImageIntegration ไปใช้ PixelMath ลงมือทำเองแทนได้
พูดตรง ๆ “Stacking” ในทางคณิตศาสตร์ก็คือการนำภาพหลายภาพที่จัดตำแหน่งตรงกันแล้วมาเฉลี่ยแบบถ่วงน้ำหนัก เพื่อเพิ่มอัตราส่วนสัญญาณต่อสัญญาณรบกวน (SNR) ImageIntegration ทรงพลังก็เพราะนอกจากการเฉลี่ยแล้ว ยังช่วยทำ Normalization และคัดพิกเซลที่ผิดปกติออกให้ด้วย แต่การคัดพิกเซลผิดปกติออกนี้ต้องมีภาพอย่างน้อยสามภาพจึงจะทำได้ (ต้องใช้เสียงข้างมากตัดสินว่าพิกเซลไหนเป็นค่าผิดปกติ) ดังนั้นเมื่อเหลือภาพแค่สองภาพ เราก็ยอมใช้ทางเลือกรองลงมา คือใช้ PixelMath ลงมือทำด้วยตัวเองเฉพาะส่วนที่สำคัญที่สุด นั่นคือ “จัดตำแหน่งแล้วเฉลี่ย” ก็พอ
วิธีที่ง่ายที่สุด: บวกแล้วเฉลี่ย
การนำภาพสองภาพมารวมกัน โดยพื้นฐานแล้วก็คือการนำมาบวกกัน แล้วหารด้วยสอง สูตรที่ป้อนใน PixelMath ก็คือนำสองภาพมาบวกกันแล้วคูณด้วย 0.5 (หรือก็คือ ÷2)

แบบนี้ก็จะได้ภาพผลลัพธ์ที่เป็นค่าเฉลี่ยของทั้งสองภาพ
อยากให้น้ำหนักต่างกัน? แยกสัมประสิทธิ์ออกจากกัน
ถ้าไม่ต้องการแค่ค่าเฉลี่ยธรรมดา แต่ต้องการให้สองภาพมีน้ำหนักต่างกัน ก็ให้ขยายสูตรออกมา แล้วปรับสัมประสิทธิ์หน้าภาพแต่ละภาพแยกกัน
ยกตัวอย่างเช่น
0.8*image1 + 0.2*image2
แบบนี้น้ำหนักของสองภาพก็จะกลายเป็น 4:1 ส่วนจะแบ่งสัมประสิทธิ์อย่างไร ก็ขึ้นอยู่กับการตัดสินใจของคุณต่อคุณภาพของสองภาพ ขอแค่สัมประสิทธิ์ทั้งสองรวมกันได้ 1 ก็พอ
ขอเตือนเรื่องสำคัญอย่างหนึ่ง ก่อนลงมือทำ อย่าลืมจัดตำแหน่งสองภาพให้ตรงกันก่อน หากไม่จัดตำแหน่งแล้วบวกกันเลย ดาวจะซ้อนกันเป็นภาพซ้อน ความพยายามที่ผ่านมาจะสูญเปล่า ขั้นตอนนี้ไม่ว่าจะใช้สูตรแบบไหนก็ตัดออกไม่ได้ PixelMath เป็นเพียงการคำนวณทีละพิกเซล จะไม่แก้ตำแหน่งที่เหลื่อมกันระหว่างสองภาพให้
ขั้นสูง: ทำ Normalization ก่อนแล้วค่อยเฉลี่ย
วิธีข้างต้นพอใช้ได้ในยามฉุกเฉิน แต่ถ้าความสว่างพื้นหลังหรือความแรงของสัญญาณของสองภาพต่างกัน ผลลัพธ์จากการบวกแล้วเฉลี่ยตรง ๆ จะไม่ค่อยดี ขั้นตอนที่ประณีตขึ้นอีกหน่อยคือทำ Normalization กับสองภาพก่อน แล้วค่อยหาค่าเฉลี่ย แบ่งเป็นสองขั้นตอนดังนี้
- ทำ Normalization ก่อน ปรับสเกลภาพที่จะนำไป Stacking ให้ตรงกับสเกลของภาพอ้างอิง
($T-median($T))*MAD(ReferenceImage)/MAD($T)+median(ReferenceImage)

- จากนั้นนำสองภาพมาเฉลี่ย เพื่อให้ Stacking เสร็จสมบูรณ์
($T+ReferenceImage)/2

ในสูตรมีสัญลักษณ์สองตัวที่ต้องอธิบาย
- ReferenceImage หมายถึง ภาพที่ดีกว่าในสองภาพ ใช้เป็นภาพอ้างอิงสำหรับ Normalization
- $T คืออีกภาพหนึ่ง
ข้อดีของการทำ Normalization ก่อน คือทำให้สองภาพอยู่บนพื้นฐานเดียวกันก่อนนำมาบวกกัน ป้องกันไม่ให้ความแตกต่างของพื้นหลังหรือสัญญาณของภาพใดภาพหนึ่งมาปนเปื้อนผลลัพธ์สุดท้าย สองภาพแม้จะมีจำนวนน้อย แต่ถ้าวิธีถูกต้อง ก็ยังสามารถ Stacking ออกมาเป็นผลงานที่สะอาดได้เหมือนกัน