Зарегистрировано: 382




Помощь  Карта сайта

Текст дня

Калибровка без дарков по двум лайтам. Устранение горячих пикселей и увеличение SNR снимка

Калибровка без дарков по двум лайтам. Устранение горячих пикселей и увеличение SNR снимка Технология, описанная в этой статье, реализована в программе PGMania Upd. Feb.2016 Calibrating astro images using two "lights" without any "darks" or "bias" files. ..
Дальше..

Фото дня

Аляска

Аляска

http://sergeydolya.li
vejournal.com/189939.
html На Аляске, прохладно. Вокруг корабля плавают айсберги, а ветер заставляет напяливать на голову шапку и кутаться в пару свитеров. Канадскую визу получили за 2 часа до отхода нашего круизного лайнера из Сиэтла, но на "пароход" успели. Кстати, это ..


PGM_Icon.tif
PGMania
PGMania. Multi-purpose astro-photo image processor. Full processing cycle with new technology. PGMania distributed under "Donation ware" license.
Contacts
email: pgmania@yandex.ru
web: PGMania page
PGMania at Sourceforge

Для добавления вашего собственного контента, а также для загрузки текстов целиком, загрузки текстов без разбиения на страницы, загрузки книг без разбиения на тексты, необходима авторизация. Если вы зарегистрированы на сайте, введите свой логин и пароль. Если нет, пожалуйста, пройдите регистрацию



Calibrate_f.jpg
Опубликовано в: Сайт: Публичные рубрики
Клуб: Астрофото
<--Любительская астрономия (ЛА)
Клуб: Обработка астрофото. Cъемка, сложение, постобработка
<--Астрофото
<--Любительская астрономия (ЛА)
Блог: Как это работает?
Блог: PGMania

0





Калибровка без дарков по двум лайтам. Устранение горячих пикселей и увеличение SNR снимка
/p. v./
22.02.2016


Калибровка без дарков по двум лайтам. Устранение горячих пикселей и увеличение SNR снимка


Технология, описанная в этой статье, реализована в программе PGMania


Upd. Feb.2016


Calibrating astro images using two "lights" without any "darks" or "bias" files. Complete elimination of hot pixels and garbage from astro images. Increasing Signal to Noise Ratio (SNR) in astro images






Removing hot pixels and garbage from image. Image calibrating without dark files. Before and after




Вместо предисловия:


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



Как позже оказалось, этим текстом я все таки обидел модератора астрофорума(?). Он закрыл мою публикацию на астрофоруме с формулировкой: "Закрою тему по причине того что всё равно ничего таким методом не получится."


Что случилось дальше, см. в 1-м комментарии к этому тексту. Оставим это на совести руководства астрофорума.



Итак, ниже скриншот с небольшим фрагментом кадра "до" и "после" процесса.


Removing hot pixels and garbage from image. Image calibrating without dark files


От автора.


Данная статья еще не закончена. Возможно, если вы заглянете сюда еще раз, обнаружите что-то новое.


Вступление.


Собственно, понятие калибровки в данном случае не совсем уместно. Больше подходит термин "очистка". Но калибровка звучит более значимо и привычно. Будем использовать его. В результате процесса мы получаем удаление всех горячих пикселей, значительное уменьшение шумов и увеличение SNR используемых лайтов.


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


В процессе калибровки мы используем любые 2 лайта из серии. На выходе также получаем 2 обработанных лайта. Процесс получения 1-го очищенного лайта описан полностью. Процесс получения 2-го лайта описан до стадии 6 (из 8). Нетрудно его домыслить, по аналогии. Тем более, что никто не заставляет ограничиваться 2-мя лайтами. Дело можно поставить на поток и при обработке использовать "умную" сортировку, подбирая оптимальные алгоритмы.
Важно, что в "элементарном" процессе участвуют всего 2 кадра.


Еще одно очень важное замечание!


Все операции в статье описаны в терминах Photoshop и проводились над 16 битными tiff файлами. Это значит, что встретив в тексте такую строку L1-L2=N1, имеется ввиду следующее:
Берем лайт 1 и делаем его нижним слоем L1 в PS. Берем лайт 2 и делаем его верхним слоем L2. Нижний слой имеет режим наложения "обычный". Верхний слой имеет режим наложения "вычитание". Оба слоя имеют прозрачность 100%, если не оговорено другое.


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


Я не преследовал цели описывать процессы абстрактно, в строго математических или логических терминах, например, в применении к 16/32/64 bpp или к int/double/float. Конкретика реализации описанных ниже алгоритмов в разных программах и на разных платформах, наверняка потребует "локализации" самих алгоритмов и адаптации под используемые библиотеки. Например, используя C# я в своих программах оперирую структурами ImageMagick, а вы на C++ используете DCRAW. И как тут быть?
Соответственно, и примеры, приведенные в аттаче к статье, демонстрируются в виде файлов Photoshop (CS6), при этом суть лежит на поверхности.


Для воспроизведения методики на базе ваших собственных файлов, кроме уверенного владения Photoshop, вам потребуется аккуратность и много терпения. Алгоритм довольно трудоемкий для "ручного" воспроизведения.


Вроде, с присказкой все.


Итак, начнем


Имеем 2 обычных лайта: L1 и L2. Лайты должны быть слегка смещены относительно друг друга с точки зрения полезного сигнала. Конкретное смещение не лимитируется, но 2-10-30px - это нормально. Основным критерием при выборе смещения должна быть уникальность мусора в кадре в данной точке в координатах сенсора. Это все, что нам нужно. Совмещаем лайты по опорным точкам полезного сигнала, например по 2-м звездам. Сдвигаем и, если надо, вращаем, масштабируем L2 относительно L1.


Важное замечание! Любые манипуляции с подвижками лайтов, их вращением или масштабированием должны быть запомнены, т.к. в процессе обработки их придется делать неоднократно.


1.Вычитаем L2 из L1. Полезный сигнал уничтожается, остается разница шумов N1=L1-L2. Результатом является файл N1.
2.Из L1 вычитаем N1. Результатом является файл Stage1.


Повторяем то же самое, меняя местами L1 и L2:
3.Вычитаем L1 из L2. Полезный сигнал уничтожается, остается разница шумов N2=L2-L1. Результатом является файл N2.
4.Из L2 вычитаем N2. Результатом является файл Stage2.


На этом можно бы и остановиться, благо картинка выглядит вполне чистой. Но.


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


5.Совмещаем N1 и N2, при этом смещаем N2 относительно N1 на те же значения, что и при совмещении лайтов L1 и L2, но с обратным знаком. Иными словами, выравниваем кадры по краям исходных лайтов или совмещаем по остаткам полезного сигнала. Горячие пиксели при этом должны погаснуть. Далее в тексте имеется ввиду смещенный N2.


6.Вычитаем N2 из N1 и получаем взаимоуничтожение постоянных горячих пикселей при остающихся случайных горячих пикселях и мусоре, "привязанных" к одному из лайтов, а также случайный шум разности лайтов. Результатом является файл Stage3.


7.Теперь поменяем местами N1 и N2 в шаге 6, т.е. из N2 вычитаем N1, получаем еще один вариант взаимоуничтожения постоянных горячих пикселей, при остающихся горячих пикселях, "привязанных" к другому лайту и случайная составляющая шума разности лайтов c обратным знаком(файл Stage4).


8.Из файла Stage2 (шаг 4) вычитаем файл Stage4 (шаг 7). Результатом будет файл Stage5, очищенный уже и от "привязанных" к конкретному лайту (L2) горячих пикселей.


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


Файл Stage5 будет содержать лайт L2, полностью свободный от горячих пикселей. При этом шум становится чуть более контрастным.


Если попытаться проделать тоже самое с Stage3 и Stage1, получим идентичный Stage5 результат Stage6, но уже для лайта L1.


Иллюстрация пройденных этапов(Stage5 в качестве Result):



Removing hot pixels and garbage from image. Image calibrat<br />ing without dark files. Stages



Полученный вариант не плох, но не идеален. Слишком шумно. Кроме того, на результатах наблюдается проникновение уникального сигнала с одного лайта на другой лайт, но в негативе. Немного доработаем методу, избавимся от призраков и теней.


9. На Stage5 накладываем Stage4. Результатом является файл Stage7 - очищенная от следов негатива с другого лайта Stage5. Это откалиброванный Lite2, готовый к выходу.


10. На Stage6 накладываем Stage3. Результатом является файл Stage8 - очищенная от следов негатива с другого лайта Stage6. Это откалиброванный Lite1, готовый к выходу.




В итоге нам удалось получить практически полностью очищенные от горячих пикселей и мусора 2 лайта с радикально уменьшенными шумами.

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


Removing hot pixels and garbage from image. Image calibrating without dark files. Before and after


Описанные операции демонстрируются на живом примере в PS. Еще раз - слои в примерах не сведены. Это сделано только для наглядности примеров и процесса. Использование файлов с не сведенными слоями в качестве операндов операций приводит к ошибкам!
Файлы примеров в PS по всем стадиям процесса


Применение на практике:


Имея серию лайтов, ее файлы нужно обрабатывать попарно, после чего сложить суммы пар с обычным сигма-клиппингом и с флэтами, если это актуально.
Для сравнения уровня шумов исходного кадра и калиброванного, ниже приведен снимок M31 с сильно задранными уровнями и обработкой кривыми.


Removing hot pixels and garbage from image. Image calibrating without dark files. Before and after




Внимание!


Описанная в данной статье технология обработки данных (далее "технология") охраняется законом об авторском праве. ГК РФ от 18.12.2006 N 230-ФЗ - Часть 4, Глава 70, Ст.1255-1302, и Глава 77, Ст. 1542-1551.


Без письменного соглашения с автором технологии законом запрещается:

-полное или частичное использование технологии в любых программах, устройствах или комплексах, предназначенных для обработки данных.


-упоминания или ссылки на детали, полностью или частично раскрывающие технологию, без указания авторства или ссылки на первоисточник


-полная или частичная публикация технологии или ее части в интернете, СМИ или в иных изданиях





(C)2015-2016, Eugene Trifonoff

aka p.v.

Saint-Petersburg, Russia

mailto:pgmania@yandex.ru

mailto:pterodactilus@rambler.ru