Київський клуб аматорів астрономії "Астрополіс"

astromagazin.net
* *
Ласкаво просимо, Гість. Будь ласка, увійдіть або зареєструйтеся.
12 Червня 2025, 13:29:21

Увійти

google


Автор Тема: X-Trans CFA матрица. Хитрости обработки  (Прочитано 3147 раз)

0 Користувачів і 1 Гість дивляться цю тему.

Серега

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 7851
  • Подяк: 1166
Re: X-Trans CFA матрица. Хитрости обработки
« Відповідь #20 : 11 Жовтня 2019, 19:29:08 »
. - .

щось мені теж 3х3 здається..
Записаний

astrokor

  • Offline Offline
  • Повідомлень: 1685
  • Подяк: 1346
  • Руслан
    • eqdrive
Re: X-Trans CFA матрица. Хитрости обработки
« Відповідь #21 : 11 Жовтня 2019, 19:30:30 »
. - .

...без інтерполяції нікуди не дінешся...
Так і я до того що без інтерполяції що з тим зображенням робити. З баєром зрозуміло в 2рази зменшив, ніякої інтерполяції.
Як конкретно Siril інтерполює з фуджа ту "кашу" невідомо, я пробував вибрати білінійну яка тільки в кожному кольорі окремо інтерполює (не лізучи в інші канали) але різниці не бачу.

ну, по-перше...
Звісно що можна написати астро-інтерполятор для фуджа
Тільки питання а воно дійсно варто витраченого часу!? :-\
Siril (dcraw) вже робить інтерполяцію.
Записаний
EQ6-MOD, RFT 152/900
QHY268M, QHY5III462M, QHY5III462C, QHYOAGM, QHYCFW3M, Chroma LRGBSHO 36mm
www.eqdrive.com.ua, astroproservice.com, www.astrobin.com

Yvk

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 4931
  • Подяк: 476
    • Не адмін на деякий час
Re: X-Trans CFA матрица. Хитрости обработки
« Відповідь #22 : 11 Жовтня 2019, 20:08:33 »
. - .

Код dcraw є в вільному доступі, але там треба довго щось палити та пити щоб розібратися чи впливає якось, наприклад, зелений канал на червоний. Може простіше буде підредагувати буквально один-два пікселі в raw - замінити зелений близький до 0 на максимальне значення та подивитись чи вплине це якось на сусідні червоні пікселі після Siril ?
Якщо ні - profit, якщо так - ой, тобто думати далі. :gigi:
Записаний


astrokor

  • Offline Offline
  • Повідомлень: 1685
  • Подяк: 1346
  • Руслан
    • eqdrive
Re: X-Trans CFA матрица. Хитрости обработки
« Відповідь #23 : 11 Жовтня 2019, 20:16:18 »
. - .

Для звичайної фотографії мабуть X-Trans має сенс. Зелених пікселів більше, око теж чутливе в зелених, використовуючи його як L канал при інтерполяція можливо покращити роздільну здатність, та зменшити муар. Якщо витягти тільки R маємо дірки більші ніж в баєра десь з коефіцієнтом 1,25 :-\, тобто ще більше погіршили роздільну в цьому каналі.

Для кисню цей сенсор має підійти, за умови що пік зеленого каналу десь близько до лінії кисню.

Для звичайного баєра я проаналізувавши сенсор своєї камері, та експериментуючи, для вузькосмугових кадрів в стек кидаю RG канали, це не набагато але всеж покращує С/Ш. Я до чого можливо дійсно нічого страшного в тому що інтерполяція бере якимось коєфіціентом сусідні пикселі.

...Може простіше буде підредагувати буквально один-два пікселі в raw - замінити зелений близький до 0 на максимальне значення та подивитись чи вплине це якось на сусідні червоні пікселі після Siril ?
Якщо ні - profit, якщо так - ой, тобто думати далі. :gigi:
Згоден краще поекспериментувати з тим що є та зробити висновки.
Записаний
EQ6-MOD, RFT 152/900
QHY268M, QHY5III462M, QHY5III462C, QHYOAGM, QHYCFW3M, Chroma LRGBSHO 36mm
www.eqdrive.com.ua, astroproservice.com, www.astrobin.com

Саша Наумов

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 1470
  • Подяк: 619
  • Refractorman
Re: X-Trans CFA матрица. Хитрости обработки
« Відповідь #24 : 11 Жовтня 2019, 21:39:27 »
. - .

Код dcraw є в вільному доступі, але там треба довго щось палити та пити щоб розібратися :gigi:

Тю, не треба нічого пити і тим більше палити,
треба просто прочитати raw і розібрати на канали.
Теж мені, біном Ньютона  :shuffle:
Записаний
Agema SD 150 + WS-400

Yvk

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 4931
  • Подяк: 476
    • Не адмін на деякий час
Re: X-Trans CFA матрица. Хитрости обработки
« Відповідь #25 : 11 Жовтня 2019, 23:06:33 »
. - .

"просто", це скільки в погромісто-годинах точно, якщо в dcraw.c 22K+ строчок С коду?  ::)

https://github.com/LibRaw/LibRaw/blob/0.19-stable/dcraw/dcraw.c
Записаний

mpyat2

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 1659
  • Подяк: 1604
  • Nothing lasts forever but the earth and sky.
    • Above us only sky
Re: X-Trans CFA матрица. Хитрости обработки
« Відповідь #26 : 12 Жовтня 2019, 08:09:51 »
. - .

Візьміть libraw, це сильно оптимізований dcraw. В комплекті до бібліотеки є тестові утілітки, які перетворюють raw-файл з фотоапарату у плоский масив CFA (color filter array).
В комплекті моїх утіліт, про які я тут писав на форумі, є оболонка для libraw, яка одразу пише fits з масивом cfa. Далі, вище вже писали, що "суперпіксель" виявляється розміром 3*3. Тому робимо перетворення в режимі суперпікселя, усереднюючи всі зелені, червоні, сині в межах цього суперпікскїеля і генеруємо три файли для кожного кольору. Втрачаємо роздільну здатність, зате маємо чесні кольори. Однак тут вже треба руками пописати.
« Останнє редагування: 12 Жовтня 2019, 09:24:05 від mpyat2 »
Записаний
EQ5+EQDrive; SW 15075 | PMAK (AAVSO). 137 new variables discovered; 22 revisions/submissions of known objects.

Серега

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 7851
  • Подяк: 1166
Re: X-Trans CFA матрица. Хитрости обработки
« Відповідь #27 : 12 Жовтня 2019, 14:48:50 »
. - .

Задача не в тому полягає. Перетворити в масив CFA можна декількома доступними способами, то не проблема. Raw Therapy, DarkTable, Adobe DNG converter etc.
Задача в тому щоб викинути сині та зелені( наприклад) лишивши один канал, ще ДО демозаїки
Записаний

mpyat2

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 1659
  • Подяк: 1604
  • Nothing lasts forever but the earth and sky.
    • Above us only sky
Re: X-Trans CFA матрица. Хитрости обработки
« Відповідь #28 : 12 Жовтня 2019, 16:02:26 »
. - .

Так CFA це ж пряме відображення матриці, без перетворень. І з нього, якщо відоме розташування пікселів (як в вашому пості з суперпікселем 3*3) можна вже видрати потрібний колір. І якщо жертвувати роздільною здатністю, то кожний суперпіксель 3*3 перетворити в один піксель усередненням потрібного кольору. Вибачте, якщо дурню написав :)
Записаний
EQ5+EQDrive; SW 15075 | PMAK (AAVSO). 137 new variables discovered; 22 revisions/submissions of known objects.

Серега

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 7851
  • Подяк: 1166
Re: X-Trans CFA матрица. Хитрости обработки
« Відповідь #29 : 12 Жовтня 2019, 23:21:44 »
. - .

Так CFA це ж пряме відображення матриці, без перетворень. І з нього, якщо відоме розташування пікселів (як в вашому пості з суперпікселем 3*3) можна вже видрати потрібний колір. І якщо жертвувати роздільною здатністю, то кожний суперпіксель 3*3 перетворити в один піксель усередненням потрібного кольору. Вибачте, якщо дурню написав :)
я цю тему розпочав щоб знайти метод отримати більшу роздільну здатність, ніж можна отримати з 3х3 :)
Записаний

semolex

  • Offline Offline
  • Повідомлень: 128
  • Подяк: 393
    • StreetAstronomy
Re: X-Trans CFA матрица. Хитрости обработки
« Відповідь #30 : 25 Грудня 2019, 19:48:54 »
. - .

Що вдалося знайти:
1. Кастомний скрипт в Pixinsight:

Red:
dy = y() % 6;
dx = x() % 6;
$T * (dx == 4 && (dy == 0 || dy == 2) ||
      dx == 1 && (dy == 3 || dy == 5) ||
      dy == 1 && (dx == 0 || dx == 2) ||
      dy == 4 && (dx == 3 || dx == 5))

Green:
dy = y() % 6;
dx = x() % 6;
$T * ((dy == 1 || dy == 4) == (dx == 1 || dx == 4 ))

Blue:
dy = y() % 6;
dx = x() % 6;
$T * (dx == 1 && (dy == 0 || dy == 2) ||
      dx == 4 && (dy == 3 || dy == 5) ||
      dy == 4 && (dx == 0 || dx == 2) ||
      dy == 1 && (dx == 3 || dx == 5))


2.В якійсь книзі описано, що чувак створює 2 копії - одну переводить в моно а потім дебаєрену фотку вже розкидає на канали і робить Linear Fit оно фотки (тут правда не зовсім зрозуміло - напевно все ж він не робить вузькополосну зйомку)

3. лівий алгоритм є - можна спробувати напрограмити :) https://projet.liris.cnrs.fr/imagine/pub/proceedings/ICIP-2014/Papers/1569915973.pdf
Записаний
ZWO ASI1600MM-Pro, ZWO EFW, iOptron CEM25P, Sky-Watcher ED80 + SW Reduces/Corrector, Optolong LRGBHaOIIISII filters, Daystar Solar Scout SS60-ds H-alpha

semolex

  • Offline Offline
  • Повідомлень: 128
  • Подяк: 393
    • StreetAstronomy
Re: X-Trans CFA матрица. Хитрости обработки
« Відповідь #31 : 25 Грудня 2019, 22:49:35 »
. - .

Ось так "зліпок" CFA з матриці витягує Pixinsight -> Split CFA
Записаний
ZWO ASI1600MM-Pro, ZWO EFW, iOptron CEM25P, Sky-Watcher ED80 + SW Reduces/Corrector, Optolong LRGBHaOIIISII filters, Daystar Solar Scout SS60-ds H-alpha

semolex

  • Offline Offline
  • Повідомлень: 128
  • Подяк: 393
    • StreetAstronomy
Re: X-Trans CFA матрица. Хитрости обработки
« Відповідь #32 : 26 Грудня 2019, 15:49:59 »
. - .

За допомогою libraw/rawpy і бібліотеки numpy вдалося видерти поканально паттерн.
В моєї і Сергієвої камери він відрізняється від намальованого в вікіпедії (а от в новіших моделях - співпадає - зчитував тестовий кадр з новії моделі).
Лінійна інтерполяція звісно ж не дала результату - чорні "дірки" а тому алгоритм заповнення чорних пікселів ще під питанням.
Записаний
ZWO ASI1600MM-Pro, ZWO EFW, iOptron CEM25P, Sky-Watcher ED80 + SW Reduces/Corrector, Optolong LRGBHaOIIISII filters, Daystar Solar Scout SS60-ds H-alpha
Подякували

semolex

  • Offline Offline
  • Повідомлень: 128
  • Подяк: 393
    • StreetAstronomy
Re: X-Trans CFA матрица. Хитрости обработки
« Відповідь #33 : 26 Грудня 2019, 23:48:36 »
. - .

Буду потихеньку допилювати потрібний функціонал для камери тут:
https://github.com/semolex/astrawpy/
Записаний
ZWO ASI1600MM-Pro, ZWO EFW, iOptron CEM25P, Sky-Watcher ED80 + SW Reduces/Corrector, Optolong LRGBHaOIIISII filters, Daystar Solar Scout SS60-ds H-alpha

Серега

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 7851
  • Подяк: 1166
Re: X-Trans CFA матрица. Хитрости обработки
« Відповідь #34 : 02 Травня 2020, 16:10:56 »
. - .

Вирішив застосувати інший підхід!
Зайшов до проблеми з іншого боку, і є результат!

Певно то все треба буде оформити в якусь окрему статтю, щоб самому не забуть :gigi:.

« Останнє редагування: 03 Травня 2020, 05:34:22 від Серега »
Записаний

Серега

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 7851
  • Подяк: 1166
Re: X-Trans CFA матрица. Хитрости обработки
« Відповідь #35 : 02 Травня 2020, 16:25:55 »
. - .

Всі тести методики проводив не на реальних астрознімках, а на синтетичних. Як їх отримав - буде нижче описано.

По суті це те саме що дає дізерінг, при спостереженнях блоками матриць, для перекриття проміжків між сенсорами.

Тому в цій методі не розлянуто взагалі вплив шуму. Вся боротьбі йде зі специфічним паттерном маски пікселів матриці X-Trans, зі збереженням максимально можливої роздільної здатності при зйомці з вузькополосниками.

  • Для початку взяв звідси фото туманності Розетка
    http://astrophotography.aa6g.org/Astrophotos/rosette-ha-svs130-sx814.html
  • перевів в фітс,кропнув та зробив 44 копії , симулюючі серію знімків
  • в Maxim DL зробив випадкові зміщення, тикаючи курсором аби куди, при операціх Align, симулюючі міжкадрові зсуви та дізерінг.  Зробив з ниї сумму, щоб подивитись які зсуви вийшли(перше фото)
  • в Iris зробив копію цієї серії та провів вирівнювання за допомогою команди COREGISTER2 [IN] [OUT] [NUMBER], яка записує в файл всі корекції (цей запис нам потім знадобиться)

« Останнє редагування: 28 Травня 2020, 16:32:39 від Серега »
Записаний

Серега

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 7851
  • Подяк: 1166
Re: X-Trans CFA матрица. Хитрости обработки
« Відповідь #36 : 02 Травня 2020, 16:43:23 »
. - .

В Пейнті зробив маску пікселів червоного каналу, орієтуючись на шаблон пікселів
GGRGGB
GGBGGR
BRGRBG
GGBGGR
GGRGGB
RBGBRG


Лишаючи пікселі червоного каналу білим, інше - чорним.
Заповнюємо цим шаблоном порожнє зображення, яке має такі самі розміри що і наші астрознімки.
Як заповнити? Можна в фотошопі заливкою шаблоном, наприклад.

Отримуємо маску
(скрін.1)




Відкриваємо зображення маски в Максимі. Відкриваємо якийсь один зі знимків нашої серії.
Вмикаємо запис в Batch Process Window (Ctrl+Q)
Інструментом аріфметичних операцій Максима застосовуємо до зображення маску, через minimum. (скрін.2)
Вимикаємо запис.
Закриваємо зображення не зберігаючі зміни.


Далі цей процес застосовуємо до всієї серії знімків.


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

Отримуємо страшненьке зображення (скрін 3)
« Останнє редагування: 03 Травня 2020, 05:35:45 від Серега »
Записаний

Серега

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 7851
  • Подяк: 1166
Re: X-Trans CFA матрица. Хитрости обработки
« Відповідь #37 : 02 Травня 2020, 16:57:46 »
. - .

переходимо в Iris.

Робимо в ній нову послідовність файлів з серії "маскованих" зображень які ми отримали в Максимі.

Далі вирівнюємо цю послідовність за допомогою команди FILE_COREGISTER [IN] [OUT] [NUMBER]
Вона застосовує до будь якої серії зображень зсуви які були виміряні при вирівнюванні попередньої серії командою COREGISTER2
Звичайними методами зробити реєстрацію зірок та вирівнювання маскованих зображень не вийде.
І лог-файл зміщень нам знадобиться пізніше.

Після команди FILE_COREGISTER  отримали вирівняну серію. Тепер можна переходити до складання суми!
Я складав звичайним аріфметичним методом.
На виході отримав щось в клітинку (зліва на скріні)

Але то не біда.
Розмножуємо нашу намальовану маску теж в потрібній кількості, та теж вирівнюємо її командою FILE_COREGISTER, і складаємо тим самим методом що і лайти. На виході отримуємо "флет" (центр скріна)

Ну а далі ділимо на цей флет суму лайтів. Отримуємо чистеньку картинку (права частина скріна)

(масштаб на скріні 400%)
Записаний

Серега

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 7851
  • Подяк: 1166
Re: X-Trans CFA матрица. Хитрости обработки
« Відповідь #38 : 02 Травня 2020, 17:04:52 »
. - .

А тепер покажу нащо це потрібно.

Через незвичну структуру патерна матриці, віддилити суто червоний канал з рава дуже важко. Вміє це робити программа Siril.
Але вона сильно інтерполює зображення, щоб заповнити пустоти між пікселями. Тому на виході ми отримуємо доволі спотворене зображення.
На скріншоті видно процес:
ORIGINAL - це те що потрапило на матрицю
RED MASK - маска пікселів одного з каналів
RED RAW CHANNEL  - червоний канал raw  зображення
RED CHANNEL AFTER SIRIL  - те що видає нам Siril з червоного каналу.
Записаний

Серега

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 7851
  • Подяк: 1166
Re: X-Trans CFA матрица. Хитрости обработки
« Відповідь #39 : 02 Травня 2020, 17:08:20 »
. - .

А тепер результати:

на скріншотах зліва - направо: Оригінальне зображення, Сумма маскованих зображень, Сумма зображень з Siril

1) 200% масштаб
2-3) 100% масштаб

До всіх зображень не застосовувались ніякі фільтр, зовсім нічого, окрім підгонки гістограмми

Як на мене то по моєму методу можна зберігти максимально можливу роздільну здатність. Тепер залишилось з'ясувати що там вийде з шумами.


Доклад закінчив :gigi:
« Останнє редагування: 02 Травня 2020, 17:13:56 від Серега »
Записаний
Подякували