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

  • Автор темы Автор темы serzin
  • Дата начала Дата начала

serzin

Топикстартер
20 лет на форуме
Сообщения
1 010
Реакции
297
Здесь можно взять скрипт на Питоне, который является аналогом функции Smoothing ColorAnt-а. Работает сильно медленнее ColorAnt-а, зато бесплатно и с открытым кодом. Можно использовать как в практических, так и в образовательных целях.:)
 
Кстати, разу уж речь про самостоятельные расчеты, то есть довольно инстересный проект
www.colour-science.org
Написан на Python. Интересен еще и тем, что содержит большую ссылочную массу на использованную литературу.
Смотрим комментарии внутри каждого модуля
github.com/colour-science/colour
Т.е., если кому Python не подходит или есть сомнения в корректности кода, то можно и на своем языке переписать.
 
Последнее редактирование:
Выложил еще вариант, где сглаживание сделано на основе аппроксимации полиномом, а не основе скользящей средней как в SG фильтре. Результат немного хуже, зато работает почти на порядок быстрее. Код многомерной аппроксимации полиномом взят отсюда.
И еще прошу прощения за ошибки в названии этой и предыдущей тем. Должно быть reverse engineering. Форум к сожалению не позволят отредактировать пост.
 
Сделал еще вариант на основе стандартной полиномиальной линейной регрессии. С L2 регуляризацией результат получается лучше, чем просто аппроксимация полиномом. Работает очень быстро. Используется sklearn.
 
Обнаружил LifeHack, который позволяет существенно изменить ситуацию со сглаживанием спектральных измерений. Подправил сглаживание на основе полиномиальной линейной регрессии. В это раз сразу сделал и ехе файл. И как всегда все абсолютно бесплатно безо всяких секретов(файлы с кодом в этом же архиве).:)
LifeHack рассказывать не буду.:) Кому интересно найдут его в коде.:) Там содержательных два десятка строк.
 
  • Спасибо
Реакции: sasa
Есть вероятность, что "LifeHack" может заключаться еще и в том, что нужно не изменять (сохранять после сглаживания) ни спектры бумаги, ни спектры первичных и бинаров.

P.S. Так почему-то кажется :)
 
  • Спасибо
Реакции: serzin
P.S.S. В данном случае, исходные точки, относительно которых идет расчет, не должны же все-таки меняться.. Независимо от того интерполяция это или аппроксимация. Не прав?
 
Есть вероятность, что "LifeHack" может заключаться еще и в том, что нужно не изменять (сохранять после сглаживания) ни спектры бумаги, ни спектры первичных и бинаров. :)
Мне эта мысль тоже приходила в голову.:) Но я пока не успел проверить сходится ли в этом вопросе теория с практикой.:)
 
Последнее редактирование:
проверить сходится ли в этом вопросе теория с практикой.:)
Так по идее не вопрос. Тем более, что reverse engineering.
Сгладить в других программах и сравнить оригинальные данные с результатами по dE.
Уверен, что гейдель фиксирует. А то так можно черти куда уехать.
В ColorAnt --- надо кого-нить попросить.

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