ค้นหาข้อมูลในบล็อก (Search in this blog)

Saturday, November 7, 2009

การลดรายละเอียดข้อมูลภาพและการเปลี่ยนภาพสีให้เป็นภาพขาวขดำ (เบื้องต้น) ด้วย GDAL

วันนี้ขอนำเสนอการลดรายละเอียดข้อมูลภาพ (Reduce resolution) และการแปลงภาพสีให้เป็นภาพขาว-ดำ (Color to Grey) อย่างง่ายด้วย gdalwarp (ลดรายละเอียด) และ gdal_translate (เปลี่ยนจากภาพสีให้เป็นภาพขาว-ดำ)

ตัวอย่างนี้สมมุติว่าผมมีภาพสีความละเอียด 1 เมตร ต้องการแปลงให้เป็นภาพขาว-ดำ ที่มีความละเอียดจุดภาพ 10 เมตร (จะเห็นว่าการทำงานนี้ประกอบด้วย 2 ขั้นตอนนะครับคือ ลดรายละเอียดและแปลงระบบสี)

ผมขอเริ่มด้วยการลดรายละเอียดข้อมูลภาพก่อนด้วย gdalwarp ซึ่งใช้คำสั่งดังนี้

>>gdalwarp -tr 10 10 -r cubic sample.tif resize.tif

โดย option "-tr" หมายถึง การกำหนดขนาดของจุดภาพ (GSD) ของไฟล์ผลลัพธ์ที่ต้องการ
และ option "-r" หมายถึง วิธีการ resampling จากตัวอย่างผมเลือกใช้วิธี Cubic Convolution

หลังจากได้ภาพที่ลดรายละเอียดจุดภาพลงแล้วเราจะทำการแปลงภาพสีให้เป็นภาพขาว-ดำด้วยโปรแกรม gdal_translate ดังนี้ครับ

>>gdal_translate -b 1 resize.tif resize_grey.tif

โดย option "-b" หมายถึง ให้เลือกให้เลือกเอาเฉพาะช่วงคลื่น (Band) ที่ต้องการเท่านั้น (จากตัวอย่างคือเอาเฉพาะช่วงคลื่นที่ 1 เท่านั้น)

ผลลัพธ์ที่ได้จากตัวอย่างนี้คือภาพต้นฉบับ (ภาพสี 3 ช่วงคลื่นขนาดจุดภาพ 1 เมตร) จะถูกแปลงให้เป็นภาพขาว-ดำ (1 ช่วงคลื่น) ที่มีความละเอียดจุดภาพ 10 เมตร และหากท่านใดต้องการทำกระบวนการนี้กับข้อมูลภาพจำนวนมากก็สามารถใช้การทำงานแบบ Batch processing ได้ครับ (ลองหาตัวอย่างการใช้งาน Batch processing ใน Blog นี้ดูนะครับ)

2 comments:

  1. 1. การสร้าง Shade relief สำหรับแบบจำลองระดับสูงเชิงเลข
    การใช้งาน >>gdaldem hillshade dem.tif shaderelief.tif

    ผมพิมพ์ตามคำสั่งข้างบนแล้วแต่มันไม่แสดงผลนะครับ ผมต้องใส่ความสูงด้วยไหม? ถ้าใส่แล้วใส่ช่วงไหน อาจารย์ช่วยอธิบายด้วยครับ ชีทที่อาจารย์แจกในการอบรมไม่ละเอียดนะครับ แล้วก็ตอนอาจารย์อธิบาย ผมพยายามจดคำสั่งทุกขั้นตอนแต่จดไม่ทันนะครับ ขอบคุณมากครับ

    ReplyDelete
  2. ผมยัง งง งง ว่าต้องการทำอะไรเหรอครับ ถ้าทำ Shade relief ก็ตรงไปตรงมานี่ครับ ผมลองทำดูอีกครั้งก็ได้นะครับ ยังไงช่วยเมล์มาถามผมโดยตรงที่ sawarin.l@msn.com ก็ได้ครับ จะได้ช่วยดูให้อีกที

    ReplyDelete