Python: Image Fusion

29 07 2010

20100729

การหลอมภาพ (image fusion) หรือที่เรียกกันว่า pan-sharpening ในงานจัดการภาพข้อมูลดาวเทียม จะเป็นการนำเอาภาพผสมสี multi-spectral ที่มีสีสรรแต่มีความละเอียดจุดภาพน้อยกว่า มาหลอมรวมกับภาพ panchromatic ที่เป็นภาพสีเทาแต่มีความละเอียดจุดภาพมากกว่า ผลลัพธ์ที่ได้คือภาพที่มีความละเอียดจุดภาพเท่ากับภาพ panchromatic และมีสีสรรเหมือนภาพ multi-spectral ทำให้เห็นรายละเอียดภาพดีขึ้น

ขอรวบรัดเข้าสู่ประเด็นเลย คือใช้ภาษา Python ร่วมกับ GDAL เขียนขึ้นเพื่อทำการหลอมภาพโดยภาพข้อมูลดาวเทียมที่ใช้เป็นภาพ THEOS  ตัดส่วนมาเพื่อใช้ทดสอบ
หลังจากอดทนรอร่วม สองชั่วโมงที่ซอฟต์แวร์ทำการหลอมภาพ (เพราะดันไปสั่งให้มันพิมพ์ค่าออกมาด้วย) ได้ผลลัพธ์ออกมาแล้ว เย้!

ms4fusion.tif     size 802P x 802L x 4Bands pixelsize 15.0 x 15.0 m ความจุ 2,709 Kb
pan4fusion.tif      size 6009P x 6009L x 1Bands pixelsize 2.0 x 2.0 m ความจุ 35,485 Kb

เขียนภาษาPython เพื่อหลอมข้อมูลมีขั้นตอนดังนี้

  1. ตัดภาพ MS ด้วยภาพ Pan   :เพื่อให้มีขนาดคลอบคลุมพื้นที่เท่ากัน
  2. resampling ภาพ MS ให้มีความละเอียดจุดภาพเท่ากับ Pan
  3. หลอมภาพโดยใช้โมเดล
    scale = (3.0*Pan)/(R+G+B+1.0)
    newR, newG, newB = R*scale, G*scale, B*scale
  4. เขียนเป็นไฟล์ใหม่ขึ้นมา

multi-spectral image

panchromatic image

pan-sharpen image by Python + GDAL

โค้ดคำสั่งประมาณร้อยกว่าบรรทัดและทำขึ้นเพื่อหลอมภาพข้อมูลดาวเทียมธีออสก่อน ยังไม่ได้ปรับปรุงให้สามารถเพิ่มตัวเลือกต่างๆได้
ทำงานบน command line ใน Dos

ติดใจอยู่ว่า ตอนทดสอบครั้งแรกใช้เวลา 17 นาที พอให้พิมพ์ค่าออกมาปาเข้าใน 2 ชั่วโมงนานขนาดนี้ใครจะรอไหวกันนะ
หลังจากตัดส่วนพิมพ์ค่าแสดงผลออกมา แล้วทดสอบหลอมภาพใหม่อีกสองครั้ง เพื่อความมั่นใจเพิ่มการเช็คเวลาเข้าไปอีก
ทีนี้ยืนยันกันด้วยตัวเลขไปเลย

เวลาเริ่มต้น 19:03:11
เวลาสิ้นสุด 19:25:46
เวลาใช้งาน  22:35  นาที
หรือ 1354.515 / 60 = 22.57525 หรือ 22:34.515 นาที

22 นาทีเป็นเวลาไม่รอนานเกินไป
ต่อไปก็ต้องลองกับข้อมูลเต็มๆ ภาพว่าจะใช้เวลาซักเท่าไหร่ น้องโอ๊ตข้อมูลอยู่ไหนเอามาได้เลย

ต่อไปต้องหาวิธีให้ทำงานได้เร็วขึ้นสำหรับข้อมูลทั้ง sence ของภาพ THEOS


Actions

Information

2 responses

30 07 2010
pkgis2007

ต้องลองเทียบกับ Openev และ Erdas ผมว่า 22 นาทีเป็นเวลาที่ไม่น้อยนะครับ

30 07 2010
enumap

วันนี้ได้ทดสอบกับ อ.สวรินทร์ อ.สวรินทร์ใช้ ERDAS จัดการเลือกให้เหมือนกันมากที่สุด
ผลปรากฎว่า ERDAS ใช้เวลาไม่เกิน 5 นาีทีก็ได้ชมภาพที่หลอมรวมกันเรียบร้อยแล้ว
โอ๊ตบอกว่า สีของภาพที่ำได้จาก ERDAS ดีกว่านิดหน่อยต้นไม้ออกไปทางเขียว

ก็เลยหลอมใหม่โดยใช้แบนด์ 321 (ตอนแรกใช้ 123) จากนั้นก็ enhance และเปลี่ยนdata type จาก Float32 ไปเป็น Byte
จากเดิมภาพมีขนาด 423,236 Kb ถ้าทำปิรามิดด้วยก็เป็น 570,123 Kb ลดลงเหลือ 105,834 Kb
และสีของภาพเหมือนกับภาพที่ได้จาก ERDAS เลย

พอลองทำ gdal2tiles ลงไปเทียบกับข้อมูลใน Google โอ๊ตครับสีที่ได้จาก ERDAS ไม่ตรงกับสีจริงครับ
จากหลังคาแดงเป็นหลังคาฟ้าครับ ERDAS มีการใช้ลำดับสีไม่เหมือนคนอื่น ดังนั้นถ้าต้องการให้สีเสมือนสีจริงต้องใช้แบนด์ 123 ครับ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s




%d bloggers like this: