Що означає значення клітини в складеному растровому?


9

Коли я роблю композитний растр у QGIS за допомогою інструменту GRASS r.composite і натискаю на певну клітинку, я отримую ці значення у синій / зелений / червоний / композитний растр: синій = 124 зелений = 124 червоний = 172 композитний = 15861.

Я знаю, що синій / зелений / червоний представляють значення яскравості даних смуг. Що являє собою 15861 і як він обчислюється?


1
Ймовірно, ціле значення, що представляє альфа-композит: 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. Для налаштування я використовую 32 для кількості значень для червоного, зеленого та синього. Підручник, який я використовую, - це курс FOSS4G Academy з дистанційного зондування. Довідковий документ знаходиться на веб- сайті 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, оскільки це версія, яку використовує ОП].
Нікос Олександріс

Відповіді:


1

Число 124 як двійковий байт (вісім цифр) - 01111100. Щоб представити RGB-трійку з трьох байтів, знадобиться три рази вісім або 24 таких біт. За замовчуванням r.compositeзменшує це лише до 15 біт, відкидаючи найменш значущі біти в кожному діапазоні. Таким чином, він обрізає від 01111100 до 01111, що дорівнює 15. (рівнозначно він ділить 124 на 8 і ігнорує решту.) Мабуть, ці три п’ятибітові результати об'єднані в порядку B, G, R, щоб утворити 15-бітове число (представляє значення між 0 і 2 ^ 15-1 = 32767, що є достатньо малим, щоб зберегти таблицю кольорів до керованого розміру). Ці значення, отже, представляють три смуги зображення, кожна з яких має лише п’ять біт точності, а не початкові вісімки.

У прикладі запитання розрахунки проходять так:

  1. Синій = 124 перетворюється на 124/8 = 15 (плюс занедбану залишок 4). У двійковій це 01111.

  2. Зелений = 124 перетворюється на 124/8 = 15 (плюс занедбану залишок 4). У двійковій це 01111.

  3. Червоний = 172 перетворюється на 172/8 = 21 (плюс занедбану залишок 4). У двійковій це 10101.

  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 .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.