ปรับให้เรียบ / reinterpolating แรสเตอร์ด้วย GDAL?


15

สั้น:
ฉันต้องการเปลี่ยนความละเอียดของแรสเตอร์และปรับทางลาดสีเทาตามที่แสดงในภาพตะโกน การตั้งค่าคือการใช้ GDAL, PIL หรือ Numpy

คำอธิบาย:
ฉัน Kriging จุดลงไปในเชิงภาพที่มีความละเอียดการส่งออกของ 20 เมตรกับGeostatistical ห้องสมุดที่มีประสิทธิภาพสูง ฉันไม่ต้องการเปลี่ยนความละเอียดเอาต์พุตเนื่องจากเวลาการแก้ไขเพิ่มขึ้นเป็นทวีคูณ
ด้วยความละเอียดนี้ภาพที่ส่งออกจะน่าเกลียด (pixelated และ aliased) ฉันไม่รู้ว่ามันถูกต้องในแนวความคิดหรือไม่ แต่ฉันต้องการภาพที่นุ่มนวลเหมือนในตัวอย่างร้อง มันเหมือนกับการ 'ปรับกำลังภาพ' ใหม่ให้เป็นภาพที่มีความละเอียดมากกว่า ฉันใช้ python ดังนั้นการตั้งค่าของฉันคือ GDAL, Python Imaging Library หรือ Numpy คำตอบอาจเป็นเชิงทฤษฎีเช่นชี้ให้เห็นชื่ออัลกอริทึมหรือแนวคิดของการดำเนินการชนิดนี้

ที่มา:
ป้อนคำอธิบายรูปภาพที่นี่

ปลายทาง:
ป้อนคำอธิบายรูปภาพที่นี่

แก้ไขผลลัพธ์ด้วย gdalwarp cubic spline:
ป้อนคำอธิบายรูปภาพที่นี่


ฉันไม่ได้ผลลัพธ์ที่ดีเท่าภาพ 'after' ที่คุณโพสต์ด้วย gdalwarp คุณสามารถโพสต์คำสั่งที่แน่นอนที่คุณใช้?
ฮัมฟรีส์

คำตอบ:


7

1) วิธีที่ยาก: ด้วยการเข้ารหัสเล็กน้อย (ค่อนข้าง) ง่ายต่อการใช้การแก้ไขแบบสองทางเพื่อให้ได้การ resampling ที่เหมาะสม

2) วิธีที่ง่าย: ใช้ GDAL ตามที่อธิบายไว้ในโพสต์ GISSE ก่อนหน้านี้แต่กลับด้าน (ลดขนาดพิกเซล)


2
มันได้ผล ผลลัพธ์ที่ดีที่สุดคือด้วยลูกบาศก์อิสระ ฉันโพสต์ผลลัพธ์ด้านบน ขอบคุณ
ปาโบล

5

ใช้GDALReprojectImageซึ่งแสดงใน Python:

from osgeo import gdal
help(gdal.ReprojectImage)

สำหรับการแก้ไขที่ราบรื่นให้ใช้วิธี bilinear หรือลูกบาศก์ ฟังก์ชั่นนี้น่าอึดอัดใจเนื่องจากไม่มีข้อโต้แย้งคำหลักดังนั้นคุณต้องค้นหาตำแหน่ง:

gdal.ReprojectImage(src_ds, dst_ds, None, None, gdal.GRA_Bilinear)

อาจเป็นเรื่องยากที่จะตั้งค่าส่วนdst_dsที่จำเป็นต้องมี geotransform คล้ายกับsrc_dsแต่มีการปรับขนาดเซลล์


+1 ฉันไม่แน่ใจว่าวิธี "ลูกบาศก์" คืออะไร ถ้ามันเป็นเส้นโค้งลูกบาศก์มันอาจจะราบรื่นกว่า bilinear; แต่ถ้ามันเป็นรูปสี่เหลี่ยมลูกบาศก์มันจะราบรื่นน้อยกว่า bilinear เส้นโค้งลูกบาศก์จะเกี่ยวกับอุดมคติ
whuber

1
@whuber จริงมีสองตัวเลือก"ลูกบาศก์" อัลกอริทึม : GRA_CubicSpline(ลองนี้ก่อน) เทียบกับGRA_Cubic(convolution)
Mike T

0

เพื่อให้การเปลี่ยนแปลงราบรื่นขึ้นคุณต้องใช้ตัวกรองความถี่ต่ำ คุณสามารถเขียนของคุณเองโดยใช้ GDAL หรือมีคนใช้ GRASS ฉันยังไม่ได้ลอง แต่นี่เป็นคำแนะนำhttp://wiki.awf.forst.uni-goettingen.de/wiki/index.php/Exercise_31

คุณอาจต้องการตัวอย่างแรสเตอร์ของคุณก่อนที่จะใช้ฟิลเตอร์ low-pass เพื่อให้ได้ความละเอียดที่ดีขึ้น


1
ฉันไม่คิดว่า OP ต้องการทำให้รูปแบบต่าง ๆ ราบรื่น: ไม่อย่างนั้นทำไมความพยายามของการเริ่มต้นอย่างแรง? ผลประโยชน์ทั้งหมดจะสูญหายไป คำถามดังกล่าวขอให้ขั้นตอนการสุ่มตัวอย่างใหม่เป็นไปอย่างราบรื่นเพื่อสร้างผลลัพธ์ที่มีความละเอียดสูงกว่า (ซึ่งเป็นวิธีที่ชาญฉลาดและมีประสิทธิภาพในการเร่งความเร็วในการส่งเสียง)
whuber

-1

คุณสามารถใช้ตัวกรองอันดับ / มัธยฐานกับรัศมี = 5 เช่นขนาดเคอร์เนล = 11, (สำหรับแต่ละช่อง rgb)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.