![image](https://habrastorage.org/webt/jj/y5/iw/jjy5iw33g3y88d5jveiswkrjhsk.png)
Для этого используется окно размером dx на dy и 3 цветовых канала (размер окна адаптивного фильтра намного меньше размера изображения). В результате в нейронной сети используется dx∙dy∙3 входных сигналов для входных нейронов. Сеть может дополняться скрытыми слоями из количества нейронов сопоставленных цветовым факторам преобразования фильтра. На выходе нейрона предлагается использовать 3 нейрона, выходные сигналы которых ставятся в соответствие трем цветам (rgb – красный, зеленый, синий) в центральном пикселе окна из выходного изображения. Сигнал цветового канала пикселя приводится линейным преобразованием в диапазон значений [-0,5; 0,5]. Тогда как в качестве передаточной функции нейронов сети используется антисимметричная сигмойдная функция с интервалом значений [-1; 1]. Для граничных пикселей изображений, когда окно выходит за рамки изображений, на входные значения нейронов сети, соответствующие таким пикселям ставятся 0. Нейронная сеть обучается на окнах для всех пикселей выходного изображения по методу обратного распространения ошибки.
В работе была реализована программа адаптивного фильтра и нейронной сети на языке Java с графическим интерфейсом пользователя.
В результате экспериментов такой фильтр показал достаточно удовлетворительный результат и способность к обучению различных цветовых не структурных преобразований.
Также реализовано Web приложение с заготовленным обученным адаптивным фильтром коричневого в белое: svlab Web FotoBW.
Аналогичное созданное приложение для Android можно скачать тут: svlab Android FotoBW.
Чтобы загрузить новое изображение необходимо нажать кнопку «Выберете файл» (файл изображения должен быть формата .jpg).
Далее необходимо дождаться когда изображение на сервере будет обработано и будет возвращено обратно в приложение.