Изображения хранятся в виде значений пикселей, которые поступают с камеры по квазилинейному закону, что означает, что для областей неба, на которых нет видимых особенностей, значение пикселя будет близко к нулю, но для ярких объектов, таких как звёзды, оно будет близко к максимальному значению в зависимости от экспозиции и усиления. Между тем, если туманность имеет поверхностную величину в половину звезды, она будет иметь значения пикселей в половину от звёздных и так далее. Это то, что мы называем линейным пиксельным режимом.
Человеческий глаз не воспринимает фотоны таким образом. Он усиливает тёмные области, поэтому объект, который в десять раз менее яркий, чем другой, будет казаться в два раза тусклее. Для астрономических изображений мы обычно отображаем их с подобным масштабированием значений пикселей (см. режимы отображения в графическом интерфейсе).
Но это всего лишь трюк с отображением, использующий функцию передачи экрана, для преобразования значений пикселей исходного изображения в более привлекательное визуальное представление.
Растяжение изображения заключается в выполнении подобной операции, но с модификацией значений пикселей самого изображения, а не просто изменением их отображения. В Siril существует три основных инструмента для достижения этой цели.
Преобразование asinh, или обратный гиперболический синус, изменит значения пикселей изображения способом, аналогичным тому, что можно увидеть с помощью режима отображения asinh, который регулируется ползунками отсечения низких и высоких значений. Здесь же параметрами являются коэффициент растягивания и значение черной точки.
где rgb_original вычисляется с использованием значений пикселей трех каналов.
A clipping mode can also be set.
Теория
As rgb_original is an average of the 3 channels, one or two channel values
will be greater than rgb_original and can therefore clip. This can cause color
artefacts when bright, strongly-colored regions are stretched. In order to
avoid this problem the RGB blend clipping algorithm was developed by the
authors of the original GHSastro tool: the same algorithms are available in
the Siril implementation and this is the default clipping mode for stretches
that require handling of clipping. The \((r, g, b)\) values are stretched first
based on the luminance value rgb_original to give \((r', g', b')\). Then
the original \((r, g, b)\) values are independently stretched to give
\((r'', g'', b'')\). Finally the largest value of \(k\) is identified
such that
\(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'')\)
This RGB blend clipping algorithm is also available for the Generalised Hyperbolic
Stretch transforms described below.
Other choices of clipping algorithm are available:
Clip - this clipping mode just allows any colour components that clip to
clip, but restricts them to values in the range 0.0 to 1.0. This may suffer
from coloured artefacts such as fringes around nearly-saturated stars, but
it is extremely quick to calculate.
Rescale - this clipping mode checks the R, G and B components of each
pixel and if any are > 1.0 it rescales the pixel so that no components are
clipped. This method is prone to artefacts and is mainly included for feature
equivalence with the GHSastro plugin. It is quick to compute.
Global Rescale - this clipping mode behaves similarly to Rescale except
that the scaling is computed globally instead of per-pixel. This avoids
the kind of artefacts that Rescale can produce, but has a bigger impact on
overall image brightness. This is faster than RGB blending to compute
but slower than Clip or Rescale.
When the Use Human-weighted Luminance option is not ticked, rgb_original is the
mean of the three pixel values; when it is set, weighting 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 human perceptual color balance.
Командная строка Siril
asinh [-human] stretch { [offset] [-clipmode=] }
Преобразует изображение, используя функцию arcsin, благодаря чему становятся видны тусклые объекты. Обязательный аргумент команды — stretch, обычно в диапазоне от 1 до 1000, определяет интенсивность растягивания. Точка чёрного может быть смещена с помощью аргумента offset в нормализованном значении пикселя в диапазоне [0, 1]. Наконец, аргумент -human позволяет использовать веса на основе относительной чувствительности человеческого глаза для вычисления светимости, применяемой при расчёте растягивания для каждого пикселя, а не просто средние значения пикселей каналов. Этот метод растягивания сохраняет светимость в цветовом пространстве L*a*b*. С помощью аргумента -clipmode= можно установить режим обрезки в одно из следующих значений: clip, rescale, rgbblend или globalrescale. По умолчанию используется rgbblend
Преобразование гистограммы (преобразование функцией передачи полутонов, MTF)
Преобразование гистограммы (MTF) является одним из самых мощных инструментов для растягивания изображения. Он может легко автоматизироваться, и именно поэтому в автоматическом растягивании используется именно этот метод.
Инструмент представлен в виде гистограммы с тремя ползунками (в форме треугольника, расположенных под ней), которые необходимо двигать для преобразования изображения. Треугольник слева представляет сигнал теней, справа — света (ярких деталей), а тот, что посередине, — параметр баланса полутонов. Значения этих ползунков отображаются под гистограммой слева и могут быть изменены непосредственно вручную. Напротив показан процент пикселей, обрезаемых при преобразовании: важно не обрезать слишком много пикселей. Если изменяется только параметр полутонов, то никакие пиксели обрезаны не будут.
Теория
Новые значения пикселей затем вычисляются с помощью следующей функции:
Обычно не рекомендуется изменять значение для света (ярких деталей), так как в этом случае они могут стать пересыщенными, и информация будет потеряна.
The toolbar contains many buttons that affect the visualization of the
histogram. You can choose to display the input histogram, the output
histogram, the transfer curve and the grid. The button
allows you to apply the same transformation as the autostretch algorithm. It
is rarely advisable to use this button as is. Adjustments are usually
necessary to avoid losing information.
Совет
When the button is pressed, the sliders and
lo, mid and hi entries will become temporarily inactive. You have to apply
the autostretch with the Apply button and the controls will
reactivate. You can then apply adjustments as a second follow-up stretch.
This behaviour avoids problems where the monitor ICC profile is different
to the image ICC profile.
At the top of the histogram it is also
possible to choose to display the histogram in logarithmic view, as in the
illustration. This behavior can be made default as explained
here. Finally a zoom in X
is available. This is very useful when all the signal is concentrated on
the left of the histogram.
Совет
If a ROI is set, the MTF histogram preview will not update to show the impact
of the stretch on the ROI. This is because that behaviour could be misleading:
if the ROI is not typical of the image overall, adjusting the ROI histogram
to a suitable level would result in a badly adjusted histogram for the
overall image and potentially a burned-out or excessively dark look to the
result. When in ROI mode the stretch parameters should be adjusted by eye.
If it is desired to check the histogram for the stretch as applied to the
image as a whole, the ROI should be cleared.
Командная строка Siril
mtf low mid high [channels]
Применяет передаточную функцию полутонов к изображению, загруженному в настоящий момент.
Необходимы три параметра low, midtones и high, где параметр баланса полутонов (midtones) определяет нелинейное растяжение гистограммы в диапазоне [0,1]. Для автоматического определения параметром см. AUTOSTRECH.
Для указания каналов, к которым применить растягивание, можно использовать необязательный параметр [channels], принимающий значения R, G, B, RG, RB или GB. По умолчанию растягивание применяется ко всем каналам
Автоматически растягивает текущее загруженное изображение с различными параметрами для каждого канала (если каналы несвязаны), если только не передан аргумент -linked. Необязательные аргументы: shadowclip — точка обрезки теней, выраженная в значениях σ от основного пика гистограммы (по умолчанию -2.8); targetbg — целевое значение фона, в диапазоне [0, 1] (по умолчанию 0.25), определяющее окончательную яркость изображения. Значениями по умолчанию являются используемые при визуализации авторастягивания в графическом интерфейсе пользователя.
Не используйте несвязанную версию после калибровки цвета, поскольку это повлияет на баланс белого
Применение преобразования к последовательности
Это преобразование можно легко применить к последовательности изображений. Вам просто нужно определить преобразование на загруженном изображении (с уже загруженной последовательностью), затем установить флажок Применить к последовательности и определить префикс вывода для новой последовательности (по умолчанию stretch_), или использовать следующую команду:
Командная строка Siril
seqmtf sequencename low mid high [channels] [-prefix=]
Аналогична команде MTF, но применяется к последовательности sequencename.
Название итоговой последовательности начинается с префикса "mtf_", если с помощью опции -prefix= не указан иной
Это самый функциональный и современный инструмент в Siril, однако также и самый сложный для изучения. Очень подробный учебник по использованию этого инструмента в Siril был написан авторами данного алгоритма: https://siril.org/tutorials/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). Теперь есть только один ползунок для перемещения, который управляет величиной сдвига.
Совет
If a ROI is set, the GHT histogram preview will not update to show the impact
of the stretch on the ROI. This is because that behaviour could be misleading:
if the ROI is not typical of the image overall, adjusting the ROI histogram
to a suitable level would result in a badly adjusted histogram for the
overall image and potentially a burned-out or excessively dark look to the
result. When in ROI mode the stretch parameters should be adjusted by eye.
If it is desired to check the histogram for the stretch as applied to the
image as a whole, the ROI should be cleared.
Некоторые операции также применимы для цветных изображений, где часто требуется получить схожую форму кривой для всех трех каналов. При этом каждый канал можно обрабатывать независимо, отключая их с помощью трех цветных кругов под гистограммой:
Обобщённое гиперболическое преобразование с цветным изображением
сдвиг пика вправо: простое растяжение со значением 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 decreasing HP.
сдвиг всех каналов вместе: существует альтернативное растяжение на основе отображения яркости, см. выпадающий список Цветовая модель растягивания в верхнем правом углу окна обобщённого гиперболического преобразования. Использование любого из значений растяжения яркости будет растягивать яркость и наносить цвета обратно на неё вместо прямого растяжения трёх каналов. Режимы яркости могут лучше сохранять цвета на изображении. Эти режимы используют описанный выше алгоритм обрезки смешивания RGB для предотвращения артефактов обрезки цветовых каналов.
изменение насыщенности изображения: обобщённое гиперболическое преобразование можно применить к каналу насыщенности изображения, выбрав опцию Растянуть насыщенность в выпадающем списке Модель растягивания. При выборе этого режима гистограмма насыщенности до и после растяжения будут отображаться жёлтым цветом. Все параметры GHS доступны, и этот режим позволяет осуществлять высокоточную корректировку канала насыщенности изображения. Простой способ увеличения насыщенности в относительно малонасыщенных областях, предотвращая перенасыщение, заключается в использовании инвертированного обобщённого гиперболического преобразования с SP, установленным около 0.5, и снижением HP до уровня, достаточного для выравнивания верхней части гистограммы насыщенности.
In order to control partially-clipped highlights, the GHS tool makes available the
same range of clipping modes as the asinh stretch. Details can be found here.
Изображение выше демонстрирует, как применение инструмента Обобщённого гиперболического преобразования к каналу насыщенности предоставляет простой способ значительного усиления насыщенности в изображении с низкой насыщенностью, сохраняя при этом контроль над верхней частью гистограммы насыщенности. На примере показано создание изображения 'Минеральной Луны', подчёркивающего различный минеральный состав различных областей лунной поверхности.
Обобщённое гиперболическое растягивание, основанное на работе группы 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. По умолчанию растягивание применяется ко всем каналам. С помощью аргумента -clipmode= можно установить режим обрезки в одно из следующих значений: clip, rescale, rgbblend или globalrescale. По умолчанию используется rgbblend
Инвертирует обобщённое гиперболическое растягивание. Предоставляет обратное преобразование GHT с теми же параметрами (если указаны), отменяет команду GHT, возможно возвращаясь к линейному изображению. Может работать таким же образом, как и GHT, но для негативных изображений
Модифицированное растягивание по 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. По умолчанию растягивание применяется ко всем каналам. С помощью аргумента -clipmode= можно установить режим обрезки в одно из следующих значений: clip, rescale, rgbblend или globalrescale. По умолчанию используется rgbblend
Инвертирует модифицированное преобразование по arcsinh. Предоставляет обратное преобразование MODASINH с теми же параметрами (если указаны), отменяет команду MODASINH, возможно возвращаясь к линейному изображению. Может работать таким же образом, как и MODASINH, но для негативных изображений
Выполняет линейное растягивание изображения к новой точке чёрного BP.
Для указания каналов, к которым применить растягивание, можно использовать необязательный параметр [channels], принимающий значения R, G, B, RG, RB или GB. По умолчанию растягивание применяется ко всем каналам.
Необязательный параметр -sat может быть использован для применения линейного растягивания к каналу насыщенности (saturation channel) изображения. Этот аргумент работает только если выбраны все каналы. С помощью аргумента -clipmode= можно установить режим обрезки в одно из следующих значений: clip, rescale, rgbblend или globalrescale. По умолчанию используется rgbblend
Применение преобразования к последовательности
Это преобразование можно легко применить к последовательности изображений. Вам просто нужно определить преобразование на загруженном изображении (с уже загруженной последовательностью), затем установить флажок Применить к последовательности и задать префикс вывода для новой последовательности (по умолчанию stretch_). Все команды также имеют форму обработки последовательностей. Каждая команда растяжения последовательности начинается с seq, а первым аргументом должно быть имя последовательности, но в остальном они такие же.
Аналогична команде GHT, но имя последовательности должно быть указано в первом аргументе. Пользовательский префикс может быть передан с помощью необязательного аргумента -prefix=
Аналогична команде INVGHT, но название последовательности должно быть указано в первом аргументе. Необязательный аргумент -prefix= может быть использован для указания пользовательского префикса
Аналогична команде MODASINH, но имя последовательности должно быть указано в первом аргументе. Пользовательский префикс может быть передан с помощью необязательного аргумента -prefix=
Аналогична команде INVMODASINH, но название последовательности должно быть указано в первом аргументе. Необязательный аргумент -prefix= может быть использован для указания пользовательского префикса
Аналогична команде LINSTRETCH, но название последовательности должно быть указано в первом аргументе. Необязательный аргумент -prefix= может быть использован для указания пользовательского префикса
Curves Transformation is a highly versatile tool used to adjust the contrast and brightness
of an image by modifying the pixel values according to a custom-defined curve. This allows
for precise control over the image's stretch.
The curve is defined by a series of points, each of which can be moved to adjust the
curve. The curve is interpolated between these points, and the pixel values are transformed
based on it. This allows for a wide range of transformations to be applied to the
image, from simple linear stretches to complex non-linear adjustments.
There are two interpolation algorithms available in the Curves Transformation dialog: linear
and cubic spline.
Теория
Linear interpolation is a simple interpolation that connects the points with straight lines.
For each pair of points, the slope of the line connecting the points is calculated:
Cubic spline curves are more complex curves that are defined by a series of control
points. For pixel value \(x\) between two control points \(x_i\) and \(x_{i+1}\),
the curve is defined by the following equation:
For \(x_i < x < x_{i+1}\), the coefficients \(a_i, b_i, c_i\), and \(d_i\) are calculated by
solving a system of equations derived from the conditions of continuity and
smoothness at each internal point. These conditions are:
The spline must be continuous at each internal point,
The first derivative of the spline must be continuous at each internal point,
The second derivative of the spline must be continuous at each internal point
Since Curves Transformation uses natural cubic splines, the second derivative at both endpoints is 0.
Предупреждение
Curves Transformation is only available as a GUI tool and cannot be used from the command line.
Curves Transformationcan display the histogram of the image in two modes: linear and logarithmic.
You can swap between these modes by clicking the Logarithmic scale checkbox at the top of the histogram.
Logarithmic scale is useful for images with a wide dynamic range, as it allows you to see the histogram in the shadows
and highlights more clearly.
Совет
If a ROI is set, the histogram preview will not update to show the impact
of the stretch on the ROI. This is because that behaviour could be misleading:
if the ROI is not typical of the image overall, adjusting the ROI histogram
to a suitable level would result in a badly adjusted histogram for the
overall image and potentially a burned-out or excessively dark look to the
result. When in ROI mode the stretch parameters should be adjusted by eye.
If it is desired to check the histogram for the stretch as applied to the
image as a whole, the ROI should be cleared.
Some common uses of the Curves Transformation tool include:
"S" curve: This curve is used to increase the contrast of an image. By increasing the
slope of the curve in the middle of the histogram, the contrast is increased.
BP & WP adjustments: The black point (BP) and white point (WP) of an image can be adjusted
by moving the first and last control points of the curve. This allows for the shadows and
highlights of the image to be adjusted independently.
An example of adjusting the black point and white point of an image
Targeted adjustments: By adding control points at specific locations in the histogram, targeted
adjustments can be made to the image. For example, the shadows can be darkened without affecting
other parts of the image.
The Curves Transformation tool is best used on an image that has already been stretched to
some extent. This allows for more precise control over the image's contrast and brightness.
This transformation can easily be applied to a sequence. All you have to do is
define the transformation on the loaded image while a sequence is loaded
and check the Apply to sequence button. Similarly to other stretching
tools, you can define the output prefix of the new sequence (curve_ by default).