ค่าเซลล์ในคอมโพสิตแรสเตอร์หมายถึงอะไร


9

เมื่อฉันสร้างแรสเตอร์แบบคอมโพสิตใน QGIS โดยใช้เครื่องมือ GRASS r.composite จากนั้นคลิกที่เซลล์ใดเซลล์หนึ่งฉันจะได้รับค่าเหล่านี้ในแรสเตอร์สีน้ำเงิน / เขียว / แดง / คอมโพสิต: สีน้ำเงิน = 124 เขียว = 124 แดง = 172 คอมโพสิต = 15861

ฉันรู้ว่าสีน้ำเงิน / เขียว / แดงแสดงถึงค่าความสว่างของแถบที่กำหนด 15861 เป็นตัวแทนอะไรและคำนวณอย่างไร?


1
อาจเป็นไปได้ว่าเป็นจำนวนเต็มแทน alpha composite: docstore.mik.ua/orelly/java-ent/jfc/ch04_07.htm
WhiteboxDev

1
คุณใช้ QGIS และ Grass รุ่นใดอยู่ นอกจากนี้โปรดระบุการตั้งค่าของคุณเนื่องจากมีผลกระทบต่อการดำเนินการ (และการคำนวณของ r.composite) ที่น่าสนใจคือฉันจะได้รับ RGB เท่านั้นและไม่มีวงดนตรีประกอบใน 2.4
MappaGnosis

ฉันใช้ QGIS 2.2 บน Windows 7 กับ GRASS 6.4.3 GUI สำหรับการตั้งค่าฉันใช้ 32 สำหรับจำนวนค่าสำหรับสีแดงสีเขียวและสีน้ำเงิน บทช่วยสอนที่ฉันใช้คือหลักสูตร FOSS4G Academy เกี่ยวกับ Remote Sensing เอกสารการกวดวิชาที่foss4geo.files.wordpress.com/2014/08/module-3-lab2.pdf
Jim O'Leary

2
โปรดอ่านคู่มือสำหรับr.composite หากคุณใช้ระดับความเข้ม "เริ่มต้น" สำหรับแต่ละองค์ประกอบ (นั่นคือ 32) คุณควรได้รับค่า RGB ที่แตกต่างกันเล็กน้อยเมื่อเทียบกับ RGB "อินพุต" คุณอาจต้องการใช้r.whatกับ-rพารามิเตอร์ ( Output color values as RRR:GGG:BBB) เพื่อสอบถามการผสม RGB ของเซลล์ นอกจากนี้ยังมองไปที่r.what.color [ลิงก์ไปยัง GRASS6 เนื่องจากเป็นรุ่นที่ OP ใช้]
Nikos Alexandris

1
ตรวจสอบยังกระทู้นี้: lists.osgeo.org/pipermail/grass-user/2015-January/071739.html
Nikos Alexandris

คำตอบ:


1

จำนวน 124 ในรูปแบบไบนารี่ไบท์ (แปดหลัก) คือ 01111100 เพื่อแสดง RGB สามเท่าของสามไบต์จะต้องใช้สามครั้งแปดหรือ 24 บิตเช่น โดยค่าเริ่มต้นr.compositeลดสิ่งนี้ลงเหลือเพียง 15 บิตโดยการทิ้งบิตที่สำคัญน้อยที่สุดในแต่ละแบน ดังนั้นมันจึงจดจ้อง 01111100 ถึง 01111 ซึ่งเท่ากับ 15 (เท่ากับมันหาร 124 ด้วย 8 และไม่สนใจส่วนที่เหลือ) เห็นได้ชัดว่าผลลัพธ์ห้าบิตทั้งสามนี้ถูกต่อกันตามลำดับ B, G, R เพื่อสร้างตัวเลข 15 บิต (แทนค่าระหว่าง 0 ถึง 2 ^ 15-1 = 32767 ซึ่งเล็กพอที่จะทำให้ตารางสีเป็นขนาดที่สามารถจัดการได้) ค่าเหล่านี้จึงเป็นตัวแทนของวงภาพสามวงแต่ละวงมีความแม่นยำเพียงห้าบิตมากกว่าแปดวงดั้งเดิม

ในตัวอย่างของคำถามการคำนวณดำเนินการดังนี้:

  1. Blue = 124 ถูกแปลงเป็น 124/8 = 15 (บวกกับส่วนที่เหลือที่ถูกทอดทิ้งของ 4) ในไบนารีนี่คือ 01111

  2. Green = 124 ถูกแปลงเป็น 124/8 = 15 (บวกกับส่วนที่เหลือที่ถูกทอดทิ้งของ 4) ในไบนารีนี่คือ 01111

  3. Red = 172 ถูกแปลงเป็น 172/8 = 21 (บวกกับส่วนที่เหลือที่ถูกทอดทิ้งของ 4) ในเลขฐานสองนี่คือ 1,0101

  4. ตัวเลขถูกต่อกันเป็น 01111 01111 10101 เลขฐานสอง 15 หลักนี้แทนค่า 15861 = (15 * 32 + 15) * 32 + 21

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

คุณสามารถย้อนกลับขั้นตอนโดยประมาณได้โดยใช้การแบ่งตามลำดับโดย 32:

  1. 15861/32 = 495 บวกส่วนที่เหลืออีก 21. (คูณด้วย 8 ส่วนที่เหลือของ 21 ให้ 168 ซึ่งน้อยกว่า 172 เดิมเล็กน้อยสำหรับแถบสีแดงเล็กน้อย)

  2. 495/32 = 15 บวกส่วนที่เหลืออีก 15 (คูณด้วย 8 ส่วนที่เหลือของ 15 นี้จะให้ 120 ซึ่งน้อยกว่า 124 เดิมเล็กน้อยสำหรับแถบสีเขียว)

  3. เราเหลือ 15 ซึ่งเมื่อคูณด้วย 8 จะได้ 120 ซึ่งน้อยกว่า 124 ดั้งเดิมเล็กน้อยสำหรับแถบสีน้ำเงิน

การอ้างอิง

r.compositeหน้าคู่มือที่https://grass.osgeo.org/grass72/manuals/r.composite.html

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