Ketika saya membuat raster komposit di QGIS menggunakan alat GRASS r.composite dan kemudian mengklik sel tertentu saya mendapatkan nilai-nilai ini dalam raster biru / hijau / merah / komposit: biru = 124 hijau = 124 merah = 172 komposit = 15861.
Saya tahu bahwa biru / hijau / merah mewakili nilai kecerahan dari band yang diberikan. Apa yang digambarkan oleh 15861 dan bagaimana cara menghitungnya?
-r
parameter (Output color values as RRR:GGG:BBB
) untuk menanyakan kombinasi RGB sel. Juga untuk melihat r.what.color . [Tautan ke GRASS6, karena ini adalah versi yang digunakan OP].Jawaban:
Angka 124 sebagai byte biner (delapan digit) adalah 01111100. Untuk merepresentasikan RGB rangkap tiga dari tiga byte akan membutuhkan tiga kali delapan, atau 24 bit tersebut. Secara default,
r.composite
kurangi ini menjadi hanya 15 bit dengan membuang bit paling tidak signifikan di setiap band. Jadi, ini memotong 01111100 ke 01111, yaitu 15. (Sama, itu membagi 124 dengan 8 dan mengabaikan sisanya.) Rupanya tiga hasil lima-bit ini digabungkan dalam urutan B, G, R untuk membentuk angka 15-bit (mewakili nilai antara 0 dan 2 ^ 15-1 = 32767, yang cukup kecil untuk menjaga tabel warna ke ukuran yang dapat dikelola). Oleh karena itu nilai-nilai ini mewakili tiga pita gambar, masing-masing dengan hanya lima bit presisi daripada delapan yang asli.Dalam contoh pertanyaan, perhitungan dilanjutkan seperti ini:
Biru = 124 dikonversi menjadi 124/8 = 15 (ditambah sisa 4 yang diabaikan). Dalam biner ini adalah 01111.
Hijau = 124 dikonversi menjadi 124/8 = 15 (ditambah sisa 4 yang diabaikan). Dalam biner ini adalah 01111.
Merah = 172 dikonversi ke 172/8 = 21 (ditambah sisa 4 yang diabaikan). Dalam biner ini adalah 10101.
Digit digabungkan menjadi 01111 01111 10101. Angka biner 15 digit ini mewakili nilai 15861 = (15 * 32 + 15) * 32 + 21.
r.composite
mungkin melakukan lebih banyak pemrosesan daripada ini, dan itu mungkin melakukannya sedikit berbeda tergantung pada opsi yang Anda berikan, tetapi operasi ini menunjukkan cara dasar di mana byte dapat dikonversi ke nilai lima-bit.Anda dapat membalikkan prosedur menggunakan divisi berurutan sebanyak 32:
15861/32 = 495 ditambah sisa 21. (Dikalikan 8, sisanya 21 memberi 168, yang hanya sedikit kurang dari 172 asli untuk pita merah.)
495/32 = 15 ditambah sisa 15. (Dikalikan 8, sisa 15 memberi 120, yang hanya sedikit kurang dari 124 asli untuk pita hijau.)
Kita dibiarkan dengan 15, yang bila dikalikan 8 memberi 120, yang hanya sedikit kurang dari 124 asli untuk pita biru.
Referensi
r.composite
halaman manual di https://grass.osgeo.org/grass72/manuals/r.composite.html .sumber