Из разного...
Проверка точности извлечения коэффициентов полиномов Цернике (Z1–Z11) из интерференционных картин с известными параметрами.
Речь идёт об алгоритмах восстановления волнового фронта (FFT → Unwrap → Zernike Fitting), используемых в широко известной в узких кругах программе DFTFringe.
Релиз DFTFringe (v8.4.0).
Метод - сравнительный анализ на синтетических интерферограммах (Ground Truth).
Синтетические интерферограммы с заданными аберрациями созданы Python-скриптом (generate_tests.py).
Файлы JSON (ground_truth_zernike_waves), содержащие точные значения аберраций в единицах RMS (λ), служат эталонными данными при этой проверке.
Исследуемое ПО: DFTFringe (Windows build, MinGW-w64).
Использована седьмая версия скрипта валидации: batch_validate_final_v7.py
Проводился учёт нормализации и учёт несущей частоты, также учтена инверсия волнового фронта и исключён произвольный выбор нулевой плоскости.
Всего проведено 17 тестов. Допуск отклонения установлен на уровне 0.15λ.
Результаты такого тестирования показали, что алгоритм восстановления волнового фронта корректно обрабатывает чистые аберрации низших и высших порядков, сложные комбинации аберраций, изображения с шумами (Low SNR, Speckle) и апертуры с центральным экранированием.
---------------------------------------
Здесь следует понимать - синтетика проверяет математику алгоритма, но не гарантирует его работу на реальных физических данных.
Шумы камеры (shot/read/PRNU), фикс-шум, нелинейность отклика, вибрации, турбулентность воздуха, фазовое дрожание, заваленный край, виньетирование, разрывы полос, насыщение пикселей, когерентные артефакты (спеклы, паразитные отражения), клин подложки и т.д. и т.п. - реальность слишком многообразна и изменчива...
---------------------------------------
Из забавного...
удалось довольно легко собрать DFTFringe из гит-хабовских исходников в эмуляции Линукса из под Виндовс, но (несмотря на приложенные несоразмерно большие усилия) под "чистыми окнами" - ни в какую... Ошибки лезут горстями и невозможно понять откуда
