Растяжение изображения

Изображения хранятся в виде значений пикселей, которые поступают с камеры по квазилинейному закону, что означает, что для областей неба, на которых нет видимых особенностей, значение пикселя будет близко к нулю, но для ярких объектов, таких как звёзды, оно будет близко к максимальному значению в зависимости от экспозиции и усиления. Между тем, если туманность имеет поверхностную величину в половину звезды, она будет иметь значения пикселей в половину от звёздных и так далее. Это то, что мы называем линейным пиксельным режимом.

Человеческий глаз не воспринимает фотоны таким образом. Он усиливает тёмные области, поэтому объект, который в десять раз менее яркий, чем другой, будет казаться в два раза тусклее. Для астрономических изображений мы обычно отображаем их с подобным масштабированием значений пикселей (см. режимы отображения в графическом интерфейсе).

Но это всего лишь трюк с отображением, использующий функцию передачи экрана, для преобразования значений пикселей исходного изображения в более привлекательное визуальное представление.

Растяжение изображения заключается в выполнении подобной операции, но с модификацией значений пикселей самого изображения, а не просто изменением их отображения. В Siril существует три основных инструмента для достижения этой цели.

Преобразование по asinh

Преобразование asinh, или обратный гиперболический синус, изменит значения пикселей изображения способом, аналогичным тому, что можно увидеть с помощью режима отображения asinh, который регулируется ползунками отсечения низких и высоких значений. Здесь же параметрами являются коэффициент растягивания и значение черной точки.

Asinh на монохромном изображении

Диалоговое окно Преобразование по asinh

Для монохромных изображений значения пикселей модифицируются с использованием следующей функции:

\[\text{pixel} = \frac{(\text{original} - \text{blackpoint})\times\text{asinh}(\text{original}\times\text{stretch})}{\text{original}\times\text{asinh}(\text{stretch})}\]

Для цветных изображений функция становится следующей:

\[\text{pixel} = \frac{(\text{original} - \text{blackpoint})\times\text{asinh}(\text{rgb}\_\text{original}\times\text{stretch})}{\text{rgb}\_\text{original}\times\text{asinh}(\text{stretch})}\]

где rgb_original вычисляется с использованием значений пикселей трех каналов.

Теория

Так как rgb_original представляет собой среднее значение по трем каналам, один или два значения канала могут быть больше rgb_original и, следовательно, привести к обрезке. Это может вызывать цветовые артефакты при растяжении ярких, сильно окрашенных областей. Для решения этой проблемы используется алгоритм обрезки смешивания RGB. Этот метод был разработан теми же авторами, что и обобщенного гиперболического преобразования. Сначала значения \((r, g, b)\) растягиваются на основе значения яркости rgb_original, чтобы получить \((r', g', b')\). Затем исходные значения \((r, g, b)\) независимо растягиваются, для получения \((r'', g'', b'')\). Наконец, определяется наибольшее значение \(k\), такое что

\(k \times r' + ( 1 - k ) \times r'' ≤ 1\);

\(k \times g' + ( 1 - k ) \times g'' ≤ 1\);

и

\(k \times b' + ( 1 - k ) \times b'' ≤ 1\)

Затем преобразованные значения вычисляются как

\(( k \times r' + ( 1 - k ) \times r'', k \times g' + ( 1 - k ) \times g'', k \times b' + ( 1 - k ) \times b'')\)

Этот алгоритм обрезки смешивания RGB также используется для описанного ниже обобщенного гиперболического преобразования.

When the Use RGB working space option is not ticked, rgb_original is the mean between the three pixel values; when it is set, ponderation changes to 0.2126 for the red value, 0.7152 for the green value and 0.0722 for the blue value, which gets results closer to color balance.

Командная строка Siril

asinh [-human] stretch [offset]
Преобразует изображение, используя функцию arcsin, благодаря чему становятся видны тусклые объекты. Обязательный аргумент команды — stretch, обычно в диапазоне от 1 до 1000, определяет интенсивность растягивания. Точка чёрного может быть смещена с помощью аргумента offset в нормализованном значении пикселя в диапазоне [0, 1]. Наконец, аргумент -human позволяет использовать веса на основе относительной чувствительности человеческого глаза для вычисления светимости, применяемой при расчёте растягивания для каждого пикселя, а не просто средние значения пикселей каналов. Этот метод растягивания сохраняет светимость в цветовом пространстве L*a*b*

Преобразование гистограммы (преобразование функцией передачи полутонов, MTF)

Преобразование гистограммы (MTF) является одним из самых мощных инструментов для растягивания изображения. Он может легко автоматизироваться, и именно поэтому в автоматическом растягивании используется именно этот метод.

MTF на монохромном изображении

Диалоговое окно Преобразование гистограммы

Инструмент представлен в виде гистограммы с тремя ползунками (в форме треугольника, расположенных под ней), которые необходимо двигать для преобразования изображения. Треугольник слева представляет сигнал теней, справа — света (ярких деталей), а тот, что посередине, — параметр баланса полутонов. Значения этих ползунков отображаются под гистограммой слева и могут быть изменены непосредственно вручную. Напротив показан процент пикселей, обрезаемых при преобразовании: важно не обрезать слишком много пикселей. Если изменяется только параметр полутонов, то никакие пиксели обрезаны не будут.

Теория

Новые значения пикселей затем вычисляются с помощью следующей функции:

(1)\[\begin{split}\text{MTF}(x_p) = \frac{(m - 1)x_p}{(2m - 1)x_p - m}. \\\end{split}\]
  • Для \(x_p=0\), \(\text{MTF} = 0\),

  • для \(x_p=m\), \(\text{MTF} = 0.5\),

  • для \(x_p=1\), \(\text{MTF} = 1\),

где \(x_p\) — это значение пикселя, определяемое следующим образом

(2)\[x_p=\frac{\text{original}-\text{shadows}}{\text{highlights}-\text{shadows}}.\]

Примечание

Обычно не рекомендуется изменять значение для света (ярких деталей), так как в этом случае они могут стать пересыщенными, и информация будет потеряна.

Панель инструментов содержит множество кнопок, влияющих на визуализацию гистограммы. Вы можете выбрать отображение исходной гистограммы, результирующей гистограммы, кривой передачи и сетки. Кнопка auto-stretch-button позволяет применить то же преобразование, что и алгоритм автоматического растягивания. Редко бывает целесообразно использовать эту кнопку без дополнительных настроек. Обычно необходимы корректировки во избежание потери информации. В верхней части гистограммы также можно выбрать отображение в логарифмическом виде, как показано на иллюстрации. Такое поведение можно установить по умолчанию, как объясняется здесь. Наконец, доступно увеличение масштаба по оси X. Это очень полезно, когда весь сигнал сосредоточен в левой части гистограммы.

Командная строка Siril

mtf low mid high [channels]
Применяет передаточную функцию полутонов к изображению, загруженному в настоящий момент.

Необходимы три параметра low, midtones и high, где параметр баланса полутонов (midtones) определяет нелинейное растяжение гистограммы в диапазоне [0,1]. Для автоматического определения параметром см. AUTOSTRECH.
Для указания каналов, к которым применить растягивание, можно использовать необязательный параметр [channels], принимающий значения R, G, B, RG, RB или GB. По умолчанию растягивание применяется ко всем каналам

Ссылка: autostretch

Примечание

mtf — это функция, которую также можно использовать в инструменте Математические операции над пикселями.

Командная строка Siril

autostretch [-linked] [shadowsclip [targetbg]]
Автоматически растягивает текущее загруженное изображение с различными параметрами для каждого канала (если каналы несвязаны), если только не передан аргумент -linked. Необязательные аргументы: shadowclip — точка обрезки теней, выраженная в значениях σ от основного пика гистограммы (по умолчанию -2.8); targetbg — целевое значение фона, в диапазоне [0, 1] (по умолчанию 0.25), определяющее окончательную яркость изображения. Значениями по умолчанию являются используемые при визуализации авторастягивания в графическом интерфейсе пользователя.

Не используйте несвязанную версию после калибровки цвета, поскольку это повлияет на баланс белого

Применение преобразования к последовательности

Это преобразование можно легко применить к последовательности изображений. Вам просто нужно определить преобразование на загруженном изображении (с уже загруженной последовательностью), затем установить флажок Применить к последовательности и определить префикс вывода для новой последовательности (по умолчанию stretch_), или использовать следующую команду:

Командная строка Siril

seqmtf sequencename low mid high [channels] [-prefix=]
Аналогична команде MTF, но применяется к последовательности sequencename.

Название итоговой последовательности начинается с префикса "mtf_", если с помощью опции -prefix= не указан иной

Ссылка: mtf

Обобщённое гиперболическое преобразование (GHS)

Это самый функциональный и современный инструмент в Siril, однако также и самый сложный для изучения. Очень подробный учебник по использованию этого инструмента в Siril был написан авторами данного алгоритма: https://siril.org/tutorials/ghs. Здесь мы лишь кратко подведем итоги основной работы с этим инструментом.

GHS на монохромном изображении

Диалоговое окно Обобщённого гиперболического преобразования

Простыми словами, GHS способен улучшать контраст в определённом диапазоне яркости на изображении. Например, если нужно лучше рассмотреть детали в части туманности со средней или высокой яркостью (что обычно очень слабо выражено на астрономических изображениях), можно выбрать именно этот диапазон для растягивания. Этот инструмент отлично справляется с улучшением контраста основных объектов без чрезмерного увеличения размеров звёзд. Инструмент в значительной степени основан на итеративном использовании, то есть растягивании на изображении различных диапазонов яркости один за другим, небольшими корректировками.

Для достижения этой цели инструмент в значительной степени полагается на отображение гистограммы и взаимодействие с ней для каждого цветового канала. Функция преобразования, имеющая форму гиперболы или буквы 'S', может быть изменена путем перемещения ее центра (параметр — точка симметрии (SP)), выравнивания любого из ее концов (с помощью параметров защиты теней и ярких участков — Точка сохранения теней (LP) и Точка cохранения светов (HP)) и, конечно, настройки силы её изгиба (коэффициенты растягивания (ln(D+1)) и локального растягивания (b)). Использование этих параметров на маленьком изображении (для повышения скорости) со значением SP , равным 0.5, поможет вам лучше понять их влияние.

На каждой итерации нужно выполнить две основные операции: выбрать диапазон источников света для изменения и фактически изменить его. Выбор диапазона довольно прост, это вопрос нахождения репрезентативного значения (SP) и определения ширины диапазона (b). Установка SP может быть выполнена тремя способами:

  • выберите область на изображении с подходящей яркостью и нажмите на кнопку выбора

  • щелкнуть по самой гистограмме один раз левой кнопкой мыши (можно увеличить гистограмму с помощью кнопки + в левом верхнем углу)

  • с помощью ползунка или связанных с ним кнопок плюс и минус или прямого ввода значения.

Ширина диапазона зависит от локального растяжения. Высокое значение b создаст небольшой диапазон и увеличит контраст в небольшом диапазоне яркостей на изображении.

Модификация гистограммы после установки точки изменения является более сложной операцией. Одной из целей, обозначенных авторами алгоритма, является приведение логарифмического представления гистограммы (включаемого с помощью соответствующей галочки) как можно ближе к убывающей линии. Для этого необходимо вырезать выпуклости и заполнять впадины. Вот быстрое руководство по использованию значений в зависимости от того, что требуется достичь:

  • Начальное растяжение из линейного состояния: установите SP немного левее главного пика, умеренное значение b от 6 и выше, слегка увеличьте D, чтобы только начать видеть основной объект. Не растягивайте слишком сильно на этом этапе, как это делает автоматическое растяжение, иначе звезды станут слишком большими (основной раздел руководства по этой теме).

  • Улучшение контраста диапазона или заполнение впадины: установите SP в центр впадины на гистограмме, задайте b настолько высоким, чтобы он соответствовал узости диапазона впадины, уменьшите HP, чтобы сохранить звезды, медленно увеличивайте D, пока улучшение не станет заметным.

  • Уменьшение контраста диапазона или сглаживание пика: уменьшение пика не так просто выполнить, но оно может произойти как побочный эффект от заполнения впадин. Например, создание пика или заполнение впадины приведет к уменьшению того, что находится левее SP. Другая возможность — использовать инвертированное обобщённое гиперболическое преобразование, выбрав его из выпадающего списка Тип растягивания, установив высокое значение LP и HP равным 1.

  • Сдвиг кривой влево, делая изображение темнее: часто после растяжения всей гистограммы пик смещается вправо, что делает фон слишком ярким. Существует простой способ просто сдвинуть всё влево — в выпадающем списке Тип растягивания выберите последний пункт, Линейное растягивание (сдвиг BP). Теперь есть только один ползунок для перемещения, который управляет величиной сдвига.

Некоторые операции также применимы для цветных изображений, где часто требуется получить схожую форму кривой для всех трех каналов. При этом каждый канал можно обрабатывать независимо, отключая их с помощью трех цветных кругов под гистограммой:

GHS на цветном изображении

Обобщённое гиперболическое преобразование с цветным изображением

  • сдвиг пика вправо: простое растяжение со значением SP, установленным левее пика, как правило делает это, поэтому данная операция должна быть частью процесса растяжения.

  • spreading a peak: to stretch a channel a bit more and it give it more importance in the final result, without changing the location of the peak too much, set SP near the peak or slightly to its right, set b depending on how the contribution is expected throughout the channel, between a negative value if the impact shall be felt up to the stars levels (to change their color) and a high value if this is only for a nebula, increase D to obtain the target width of the peak, and then offset the peak to the left by increasing HP.

  • сдвиг всех каналов вместе: существует альтернативное растяжение на основе отображения яркости, см. выпадающий список Цветовая модель растягивания в верхнем правом углу окна обобщённого гиперболического преобразования. Использование любого из значений растяжения яркости будет растягивать яркость и наносить цвета обратно на неё вместо прямого растяжения трёх каналов. Режимы яркости могут лучше сохранять цвета на изображении. Эти режимы используют описанный выше алгоритм обрезки смешивания RGB для предотвращения артефактов обрезки цветовых каналов.

  • изменение насыщенности изображения: обобщённое гиперболическое преобразование можно применить к каналу насыщенности изображения, выбрав опцию Растянуть насыщенность в выпадающем списке Модель растягивания. При выборе этого режима гистограмма насыщенности до и после растяжения будут отображаться жёлтым цветом. Все параметры GHS доступны, и этот режим позволяет осуществлять высокоточную корректировку канала насыщенности изображения. Простой способ увеличения насыщенности в относительно малонасыщенных областях, предотвращая перенасыщение, заключается в использовании инвертированного обобщённого гиперболического преобразования с SP, установленным около 0.5, и снижением HP до уровня, достаточного для выравнивания верхней части гистограммы насыщенности.

    Применение GHS к каналу насыщенности для создания 'Минеральной Луны'

    Изображение выше демонстрирует, как применение инструмента Обобщённого гиперболического преобразования к каналу насыщенности предоставляет простой способ значительного усиления насыщенности в изображении с низкой насыщенностью, сохраняя при этом контроль над верхней частью гистограммы насыщенности. На примере показано создание изображения 'Минеральной Луны', подчёркивающего различный минеральный состав различных областей лунной поверхности.

Командная строка Siril

ght -D= [-B=] [-LP=] [-SP=] [-HP=] [-human | -even | -independent | -sat] [channels]
Обобщённое гиперболическое растягивание, основанное на работе группы ghsastro.co.uk.

Аргумент -D= определяет силу растягивания. Принимает значения между 0 и 10. Это единственный обязательный аргумент. Последующие необязательные аргументы дополнительно настраивают растягивание:
B определяет интенсивность растягивания вблизи точки фокуса (focal point); принимает значения между -5 и 15;
LP определяет диапазон сохранения теней между 0 и SP, где растягивание будет линейным, сохраняя детали в тенях;
SP определяет точку симметрии растягивания, между 0 и 1, т.е. точку, где растягивание будет наиболее интенсивным;
HP определяет область между HP и 1, где растягивание линейно, сохраняя детали в светах и предотвращая распухание звёзд.
Если аргументы не даны, используются значения по умолчанию для B, LP и SP — 0.0, и 1.0 для HP.
Для цветового растягивания может быть передан необязательный аргумент -human, -even или -independent, позволяющий выбрать модель относительной чувствительности глаза, равновзвешенной светимости или независимые значения канала. Для монохромных изображений этот аргумент игнорируется. В качестве альтернативы, аргумент -sat указывает, что растягивание применяется к насыщенности изображения — для этого изображение должно быть цветным и должны быть выбраны все каналы.
Для указания каналов, к которым применить растягивание, можно использовать необязательный параметр [channels], принимающий значения R, G, B, RG, RB или GB. По умолчанию растягивание применяется ко всем каналам

Командная строка Siril

invght -D= [-B=] [-LP=] [-SP=] [-HP=] [-human | -even | -independent | -sat] [channels]
Инвертирует обобщённое гиперболическое растягивание. Предоставляет обратное преобразование GHT с теми же параметрами (если указаны), отменяет команду GHT, возможно возвращаясь к линейному изображению. Может работать таким же образом, как и GHT, но для негативных изображений

Ссылка: ght

Командная строка Siril

modasinh -D= [-LP=] [-SP=] [-HP=] [-human | -even | -independent | -sat] [channels]
Модифицированное растягивание по arcsinh, основанное на работе группы ghsastro.co.uk.

Аргумент -D= определяет силу растягивания. Принимает значения между 0 и 10. Это единственный обязательный аргумент. Последующие необязательные аргументы дополнительно настраивают растягивание:
LP определяет диапазон сохранения теней между 0 и SP, где растягивание будет линейным, сохраняя детали в тенях;
SP определяет точку симметрии растягивания, между 0 и 1, т.е. точку, где растягивание будет наиболее интенсивным;
HP определяет область между HP и 1, где растягивание линейно, сохраняя детали в светах и предотвращая распухание звёзд.
Если аргументы не указаны, используются значения по умолчанию 0.0 для LP и SP, и 1.0 для HP.
Для цветового растягивания может быть передан необязательный аргумент -human, -even или -independent, позволяющий выбрать модель относительной чувствительности глаза, равновзвешенной светимости или независимые значения канала. Для монохромных изображений этот аргумент игнорируется. В качестве альтернативы, аргумент -sat указывает, что растягивание применяется к насыщенности изображения — для этого изображение должно быть цветным и должны быть выбраны все каналы.
Для указания каналов, к которым применить растягивание, можно использовать необязательный параметр [channels], принимающий значения R, G, B, RG, RB или GB. По умолчанию растягивание применяется ко всем каналам

Командная строка Siril

invmodasinh -D= [-LP=] [-SP=] [-HP=] [-human | -even | -independent | -sat] [channels]
Инвертирует модифицированное преобразование по arcsinh. Предоставляет обратное преобразование MODASINH с теми же параметрами (если указаны), отменяет команду MODASINH, возможно возвращаясь к линейному изображению. Может работать таким же образом, как и MODASINH, но для негативных изображений

Ссылка: modasinh

Командная строка Siril

linstretch -BP= [-sat] [channels]
Выполняет линейное растягивание изображения к новой точке чёрного BP.
Для указания каналов, к которым применить растягивание, можно использовать необязательный параметр [channels], принимающий значения R, G, B, RG, RB или GB. По умолчанию растягивание применяется ко всем каналам.
Необязательный параметр -sat может быть использован для указания, что растягивание применяется к насыщенности изображения. Этот аргумент работает только если выбраны все каналы

Применение преобразования к последовательности

Это преобразование можно легко применить к последовательности изображений. Вам просто нужно определить преобразование на загруженном изображении (с уже загруженной последовательностью), затем установить флажок Применить к последовательности и задать префикс вывода для новой последовательности (по умолчанию stretch_). Все команды также имеют форму обработки последовательностей. Каждая команда растяжения последовательности начинается с seq, а первым аргументом должно быть имя последовательности, но в остальном они такие же.

Командная строка Siril

seqght sequence -D= [-B=] [-LP=] [-SP=] [-HP=] [-human | -even | -independent | -sat] [channels] [-prefix=]
Аналогична команде GHT, но имя последовательности должно быть указано в первом аргументе. Пользовательский префикс может быть передан с помощью необязательного аргумента -prefix=

Ссылка: ght

Командная строка Siril

seqinvght sequence -D= [-B=] [-LP=] [-SP=] [-HP=] [-human | -even | -independent | -sat] [channels] [-prefix=]
Аналогична команде INVGHT, но название последовательности должно быть указано в первом аргументе. Необязательный аргумент -prefix= может быть использован для указания пользовательского префикса

Ссылка: invght

Командная строка Siril

seqmodasinh sequence -D= [-LP=] [-SP=] [-HP=] [-human | -even | -independent | -sat] [channels] [-prefix=]
Аналогична команде MODASINH, но имя последовательности должно быть указано в первом аргументе. Пользовательский префикс может быть передан с помощью необязательного аргумента -prefix=

Ссылка: modasinh

Командная строка Siril

seqinvmodasinh sequence -D= [-LP=] [-SP=] [-HP=] [-human | -even | -independent | -sat] [channels] [-prefix=]
Аналогична команде INVMODASINH, но название последовательности должно быть указано в первом аргументе. Необязательный аргумент -prefix= может быть использован для указания пользовательского префикса

Ссылка: invmodasinh

Командная строка Siril

seqlinstretch sequence -BP= [channels] [-sat] [-prefix=]
Аналогична команде LINSTRETCH, но название последовательности должно быть указано в первом аргументе. Необязательный аргумент -prefix= может быть использован для указания пользовательского префикса

Ссылка: linstretch