ColorAnt reverse engineering:). Часть 2 - Smoothing.

serzin

Топикстартер
20 лет на форуме
Сообщения
988
Реакции
282
Здесь можно взять скрипт на Питоне, который является аналогом функции Smoothing ColorAnt-а. Работает сильно медленнее ColorAnt-а, зато бесплатно и с открытым кодом. Можно использовать как в практических, так и в образовательных целях.:)
 

DimB

15 лет на форуме
Сообщения
766
Реакции
392
Кстати, разу уж речь про самостоятельные расчеты, то есть довольно инстересный проект
www.colour-science.org
Написан на Python. Интересен еще и тем, что содержит большую ссылочную массу на использованную литературу.
Смотрим комментарии внутри каждого модуля
github.com/colour-science/colour
Т.е., если кому Python не подходит или есть сомнения в корректности кода, то можно и на своем языке переписать.
 
Последнее редактирование:

serzin

Топикстартер
20 лет на форуме
Сообщения
988
Реакции
282
Выложил еще вариант, где сглаживание сделано на основе аппроксимации полиномом, а не основе скользящей средней как в SG фильтре. Результат немного хуже, зато работает почти на порядок быстрее. Код многомерной аппроксимации полиномом взят отсюда.
И еще прошу прощения за ошибки в названии этой и предыдущей тем. Должно быть reverse engineering. Форум к сожалению не позволят отредактировать пост.
 

serzin

Топикстартер
20 лет на форуме
Сообщения
988
Реакции
282
Сделал еще вариант на основе стандартной полиномиальной линейной регрессии. С L2 регуляризацией результат получается лучше, чем просто аппроксимация полиномом. Работает очень быстро. Используется sklearn.
 

serzin

Топикстартер
20 лет на форуме
Сообщения
988
Реакции
282
Обнаружил LifeHack, который позволяет существенно изменить ситуацию со сглаживанием спектральных измерений. Подправил сглаживание на основе полиномиальной линейной регрессии. В это раз сразу сделал и ехе файл. И как всегда все абсолютно бесплатно безо всяких секретов(файлы с кодом в этом же архиве).:)
LifeHack рассказывать не буду.:) Кому интересно найдут его в коде.:) Там содержательных два десятка строк.
 
  • Спасибо
Реакции: sasa

DimB

15 лет на форуме
Сообщения
766
Реакции
392
Есть вероятность, что "LifeHack" может заключаться еще и в том, что нужно не изменять (сохранять после сглаживания) ни спектры бумаги, ни спектры первичных и бинаров.

P.S. Так почему-то кажется :)
 
  • Спасибо
Реакции: serzin

DimB

15 лет на форуме
Сообщения
766
Реакции
392
P.S.S. В данном случае, исходные точки, относительно которых идет расчет, не должны же все-таки меняться.. Независимо от того интерполяция это или аппроксимация. Не прав?
 

serzin

Топикстартер
20 лет на форуме
Сообщения
988
Реакции
282
Есть вероятность, что "LifeHack" может заключаться еще и в том, что нужно не изменять (сохранять после сглаживания) ни спектры бумаги, ни спектры первичных и бинаров. :)
Мне эта мысль тоже приходила в голову.:) Но я пока не успел проверить сходится ли в этом вопросе теория с практикой.:)
 
Последнее редактирование:

DimB

15 лет на форуме
Сообщения
766
Реакции
392
проверить сходится ли в этом вопросе теория с практикой.:)
Так по идее не вопрос. Тем более, что reverse engineering.
Сгладить в других программах и сравнить оригинальные данные с результатами по dE.
Уверен, что гейдель фиксирует. А то так можно черти куда уехать.
В ColorAnt --- надо кого-нить попросить.

И бумажных патчей все-таки лучше несколько дублей и перед расчетами усреднить.
Все-таки высоковата ошибка может быть.
 

serzin

Топикстартер
20 лет на форуме
Сообщения
988
Реакции
282
По просьбам трудящихся:) сделал вариант сглаживания полиномом с интерфейсом. По кнопке Open открывает фай и рисует картинку. По кнопке Smooth сглаживает и предлагает сохранить файл. Чтобы посмотреть картинку сглаженного файла надо открыть его кнопкой Open.
Для тех, кто готов обходиться без интерфейса и картинок,:) сделал вариант сглаживания RBF интерполяцией. Работает не быстро(у меня пару минут). Зато аккуратно. И делается практически одной строкой кода.
 
  • Спасибо
Реакции: alex103 и jazzy