Я отсканировал слайды, и теперь у меня есть 48-битные цветные и инфракрасные (инфракрасные) 16-битные серые файлы. Сейчас я обрабатываю их, чтобы удалить пыль и царапины, и я ищу способ пакетного определения правильного порога для применения к ИК-изображениям для определения областей с пылью и царапинами. У меня более 4 тысяч слайдов, и я не могу проверить их все вручную.
Мой вопрос касается выбора алгоритма для определения порога ИК. Другие подобные вопросы ( Исцеление пыли и царапин на отсканированных фотографиях при последующей обработке ) не затрагивают инфракрасный слой, поэтому им необходимо «угадать» пыль и царапины. С имеющимся у меня ИК-каналом я знаю , где проблемы, только я должен лучше их изолировать.
Я читал другие вопросы, касающиеся удаления пыли и царапин с отсканированной пленки, например, https://stackoverflow.com/questions/27217916/dust-and-scratch-removal-with-open-source-graphic-libraries, но они касаются выбора алгоритмов исцеления с учетом уже определенной черно-белой маски ИК.
Я также подготовил несколько примеров, чтобы проиллюстрировать мою проблему, надеюсь, они не будут слишком загромождать вопрос.
Проверяя гистограммы ИК-изображений каждого рулона, я замечаю, что могу определить порог, который правильно помечает только пыль и царапины, без ошибочной маркировки частей изображения как пыли, но этот порог низкий, а не каждая царапина отмечается Смотрите первое изображение. Я обнаружил, что это около 135/255, 53% серого.
Однако на некоторых изображениях ИК-данные распределены вокруг более высоких значений яркости, и я хотел бы увеличить порог для обнаружения большего количества пыли. См. Пример 2, где я использовал тот же порог, что и в первом примере (первая маска), или я использовал порог 194/255 = 76% серого (вторая маска). Однако я не знаю, как автоматически определить этот новый порог, изображение за изображением.
Можно ли проверить наклон ИК-гистограммы? Я не уверен, как, есть много изменчивости.
Другим вариантом может быть анализ подрегионов каждого изображения и определение порога для каждого из них для адаптации базовой линии к более ярким и темным областям. Однако я не уверен, как определить такой алгоритм.
Я использую G'Mic для обработки из-за очень хорошего фильтра inpaint, и он предоставляет встроенный интерпретатор языка. Пока я знаю, какой алгоритм мне следует реализовать, у меня больше не будет проблем. Этот вопрос касается именно алгоритма, а не его реализации.
Предложение другого программного обеспечения, способного адаптивно маркировать пыль и царапины, также приветствуется, я мог бы передать результат в G'Mic для окончательного окрашивания / заживления.
![Example 2](https://i.stack.imgur.com/894JO.png)