Giá trị ô trong raster hỗn hợp có nghĩa là gì?


9

Khi tôi tạo một raster hỗn hợp trong QGIS bằng công cụ GRASS r.compozit và sau đó nhấp vào một ô nhất định, tôi nhận được các giá trị này trong các raster xanh / xanh / đỏ / hỗn hợp: blue = 124 green = 124 red = 172 composite = 15861.

Tôi biết rằng màu xanh lam / xanh lá cây / đỏ đại diện cho các giá trị độ sáng của các dải đã cho. 15861 đại diện cho cái gì và nó được tính như thế nào?


1
Nó có khả năng một giá trị số nguyên đại diện cho tổng hợp alpha: docstore.mik.ua/orelly/java-ent/jfc/ch04_07.htm
WhiteboxDev

1
Phiên bản nào của QGIS và Grass bạn đang sử dụng? Ngoài ra, vui lòng nêu các cài đặt của bạn khi chúng ảnh hưởng đến hoạt động (và do đó tính toán r.compozit). Thật thú vị, tôi luôn chỉ nhận được RGB và không có dải tổng hợp trong 2.4.
MappaGnosis

Tôi đang sử dụng QGIS 2.2 trên Windows 7 với GUI GRASS 6.4.3. Đối với cài đặt, tôi đang sử dụng 32 cho số lượng giá trị cho màu đỏ, xanh lá cây và xanh dương. Hướng dẫn mà tôi đang sử dụng là khóa học của Học viện FOSS4G về Viễn thám. Tài liệu hướng dẫn có tại foss4geo.files.wordpress.com/2014/08/module-3-lab2.pdf .
Jim O'Leary

2
Xin vui lòng, đọc hướng dẫn cho r.compozit . Nếu bạn sử dụng các mức cường độ "mặc định" cho từng thành phần (đó là 32), bạn sẽ nhận được các giá trị RGB hơi khác so với RGB "đầu vào". Bạn có thể muốn sử dụng r.what với -rtham số ( Output color values as RRR:GGG:BBB) để truy vấn kết hợp RGB của ô. Ngoài ra để xem r.what.color . [Liên kết đến GRASS6, vì đây là phiên bản mà OP sử dụng].
Nikos Alexandris

Câu trả lời:


1

Số 124 dưới dạng byte nhị phân (tám chữ số) là 01111100. Để biểu diễn một bộ ba RGB gồm ba byte sẽ cần ba lần tám hoặc 24, các bit như vậy. Theo mặc định, r.compositegiảm điều này xuống chỉ còn 15 bit bằng cách loại bỏ các bit ít quan trọng nhất trong mỗi băng tần. Do đó, nó cắt 01111100 thành 01111, tức là 15. (Tương đương, nó chia 124 cho 8 và bỏ qua phần còn lại.) Rõ ràng ba kết quả năm bit này được nối theo thứ tự B, G, R để tạo thành một số 15 bit (biểu thị các giá trị trong khoảng từ 0 đến 2 ^ 15-1 = 32767, đủ nhỏ để giữ bảng màu ở kích thước có thể quản lý được). Do đó, các giá trị này đại diện cho ba dải hình ảnh, mỗi dải chỉ có năm bit chính xác thay vì tám dải gốc.

Trong ví dụ của câu hỏi, các tính toán tiến hành như sau:

  1. Blue = 124 được chuyển đổi thành 124/8 = 15 (cộng với phần còn lại bị bỏ qua là 4). Trong nhị phân này là 01111.

  2. Màu xanh lá cây = 124 được chuyển đổi thành 124/8 = 15 (cộng với phần còn lại bị bỏ quên là 4). Trong nhị phân này là 01111.

  3. Red = 172 được chuyển đổi thành 172/8 = 21 (cộng với phần còn lại bị bỏ qua là 4). Trong nhị phân, đây là 10101.

  4. Các chữ số được ghép thành 01111 01111 10101. Số nhị phân 15 chữ số này biểu thị giá trị 15861 = (15 * 32 + 15) * 32 + 21.

r.composite có thể xử lý nhiều hơn thế này và nó có thể thực hiện hơi khác tùy thuộc vào các tùy chọn bạn cung cấp, nhưng các thao tác này cho thấy cách cơ bản trong đó một byte có thể được chuyển đổi thành giá trị năm bit.

Bạn có thể đảo ngược thủ tục bằng cách sử dụng các phép chia liên tiếp bằng 32:

  1. 15861/32 = 495 cộng với phần còn lại của 21. (Nhân với 8, phần còn lại của 21 cho 168, chỉ ít hơn một chút so với 172 ban đầu cho dải màu đỏ.)

  2. 495/32 = 15 cộng với phần còn lại là 15. (Nhân với 8, phần còn lại của 15 cho 120, chỉ ít hơn một chút so với 124 ban đầu cho dải màu xanh lá cây.)

  3. Chúng tôi còn lại 15, khi nhân với 8 cho 120, chỉ ít hơn một chút so với 124 ban đầu cho dải màu xanh.

Tài liệu tham khảo

r.compositetrang hướng dẫn tại https://grass.osgeo.org/grass72/manuals/r.compoz.html .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.