Вот такая задачка иинтересная возникла. Есть изображение, смазанное из-за того, что у фотографа рука дрогнула. Нужно по возможности (очевидно, что всей информации в картинке уже нет) найти изображение, которое бы получилось, если бы рука не дрогнула. Для начала можно считать, что известно в какую сторону и насколько пикселов дрогнула рука, кроме того можно считать что дергалась она прямолинейно. Что-то ничего в голову не идёт, хотя чувствую, что как-то улучшить изображение все же можно.
Здравствуйте, Рома Мик, Вы писали:
РМ>Вот такая задачка иинтересная возникла. Есть изображение, смазанное из-за того, что у фотографа рука дрогнула. Нужно по возможности (очевидно, что всей информации в картинке уже нет) найти изображение, которое бы получилось, если бы рука не дрогнула. Для начала можно считать, что известно в какую сторону и насколько пикселов дрогнула рука, кроме того можно считать что дергалась она прямолинейно. Что-то ничего в голову не идёт, хотя чувствую, что как-то улучшить изображение все же можно.
Смоделируй прямой процесс: из нормального в — смазанное. Там и об обратном додумаешься.
Здравствуйте, Рома Мик, Вы писали:
РМ>Вот такая задачка иинтересная возникла. Есть изображение, смазанное из-за того, что у фотографа рука дрогнула. Нужно по возможности (очевидно, что всей информации в картинке уже нет) найти изображение, которое бы получилось, если бы рука не дрогнула. Для начала можно считать, что известно в какую сторону и насколько пикселов дрогнула рука, кроме того можно считать что дергалась она прямолинейно. Что-то ничего в голову не идёт, хотя чувствую, что как-то улучшить изображение все же можно.
google "восстановление изображений" или "image restoration"(последнее более продуктивно)
Если то, как "дрогнула рука" неизвестно — копать в сторону "blind image restoration" или "blind deconvolution"
Также на присторах инета можно найти неплохую книжку:
И.С.Грузман, В.С. Киричук, В.П. Косых,
Г.И. Перетягин, А.А.Спектор
ЦИФРОВАЯ ОБРАБОТКА ИЗОБРАЖЕНИЙ В ИНФОРМАЦИОННЫХ СИСТЕМАХ
УЧЕБНОЕ ПОСОБИЕ
для студентов V курса РЭФ
(специальности “Радиотехника” и
“Средства связи с подвижными объектами”)
Для общего знакомства с темой — самое то.
Далее стоит посмотреть книги на www.dsp-book.narod.ru
В особенности — Э. Прэтт "Цифровая обработка изображений" — фундаментальнейший труд по побработке изображений.
А вообще, в теории, все довольно просто: заблуренное изображение есть свертка идеального изображения с неким фильтром, дающим искажение. Соответственно, нужно "развернуть" свертку(по-английски это называется deconvolution) и найти "идеальное" изображение. Если передаточная функция фильтра известна, то это (в теории) можно сделать точно. На практике, правда, все гораздо сложнее..
Здравствуйте, Рома Мик, Вы писали:
РМ>Вот такая задачка иинтересная возникла. Есть изображение, смазанное из-за того, что у фотографа рука дрогнула. Нужно по возможности (очевидно, что всей информации в картинке уже нет) найти изображение, которое бы получилось, если бы рука не дрогнула. Для начала можно считать, что известно в какую сторону и насколько пикселов дрогнула рука, кроме того можно считать что дергалась она прямолинейно. Что-то ничего в голову не идёт, хотя чувствую, что как-то улучшить изображение все же можно.
Проблема в том, что заблюренность получается не везде одинаковая и зависит от расстояния до объекта.
Здравствуйте, michus, Вы писали:
M>Смоделируй прямой процесс: из нормального в — смазанное. Там и об обратном додумаешься.
Это не сработает. Обратного процесса не вывести, имея только смазанное изображение.
Тут работает не просто фильтр, а неизвестное наложение друг на друга сдвинутых одинаковых кадров, слегка афинно преобразованных. Вобщем теоретически задача не решаема. Хотя слышал, что если иметь исходное несмазанное изображение, или его статистические характеристики, то можно отсечь "более слабые его примеси", т.е. блюр смоется. Ссылки на статью забыл...
Здравствуйте, piAnd, Вы писали:
A>Здравствуйте, michus, Вы писали:
M>>Смоделируй прямой процесс: из нормального в — смазанное. Там и об обратном додумаешься. A>Это не сработает. Обратного процесса не вывести, имея только смазанное изображение. A>Тут работает не просто фильтр, а неизвестное наложение друг на друга сдвинутых одинаковых кадров, слегка афинно преобразованных. Вобщем теоретически задача не решаема. Хотя слышал, что если иметь исходное несмазанное изображение, или его статистические характеристики, то можно отсечь "более слабые его примеси", т.е. блюр смоется. Ссылки на статью забыл...
В какой-то книге по обработке сигналов года полтора назад видел как к размытому (motion blur) изображению применяется некий фильтр после чего получается практически идиальная картинка...
Здравствуйте, Dimonka, Вы писали:
D>Проблема в том, что заблюренность получается не везде одинаковая и зависит от расстояния до объекта.
Это другая проблема, в моем случае решаемая, поскольку меня вполне устроит сделать часть работы вручную.
Здравствуйте, Reunion, Вы писали:
R>В какой-то книге по обработке сигналов года полтора назад видел как к размытому (motion blur) изображению применяется некий фильтр после чего получается практически идиальная картинка...
линейный фильтр только деблюр может при свертке, я просто имел ввиду остальные методы, которые на эмпирике основаны, т.е. дают погрешности, причем такие, что визуально "хрен редьки не слаще".
В общем, на свежую голову всё оказалось довольно просто. Впрочем реалтзовывать буду вечеро на не свежую, так что лучше запишу, что надумалось
Пусть смаз горизонтальный длиной L пикселов. Рассмотрим одну строчку изображения. S — смазанной изображение, которое нам известно, D — восстановленное, оно же "исходное", которое надо найти.
Смаз это примерно следующее:
S[x] = Sum[x-L/2;x+L/2](D) / L
Тогда очевидно, что
S[x+1] = S[x] + (D[x+L/2+1] - D[x-L/2]) / L
Или, что тоже самое
D[x] = D[x-L-1] + (S[x-L/2]-S[x-L/2-1])*L
То есть, имея на строке точку, в которой нам известен правильный цвет, можно восстановить изображение. Если на изображении есть однотонные области длиной больше L, то в середине такой области S = D.
Преполагаю не мудрствуя лукаво использовать уже написанные функции поворота изображения и сделать именно по этой формуле. От пользователя понадобится указать только направление и длину смаза, ну и если будут проблемы, то и точки, где цвета правильные.
Далее пользователь может применить программу несколько раз, например отдельно для фона, отдельно для перднего плана и ручками совместить реультат в фотошопе.
Осталось запрограммировать и посмотреть, что получится
Здравствуйте, Рома Мик, Вы писали:
РМ>В общем, на свежую голову всё оказалось довольно просто. Впрочем реалтзовывать буду вечеро на не свежую, так что лучше запишу, что надумалось
РМ>Пусть смаз горизонтальный длиной L пикселов. Рассмотрим одну строчку изображения. S — смазанной изображение, которое нам известно, D — восстановленное, оно же "исходное", которое надо найти.
РМ>Смаз это примерно следующее: РМ>
РМ>S[x] = Sum[x-L/2;x+L/2](D) / L
РМ>
РМ>Тогда очевидно, что РМ>
РМ>S[x+1] = S[x] + (D[x+L/2+1] - D[x-L/2]) / L
РМ>
РМ>Или, что тоже самое РМ>
РМ>D[x] = D[x-L-1] + (S[x-L/2]-S[x-L/2-1])*L
РМ>
РМ>То есть, имея на строке точку, в которой нам известен правильный цвет, можно восстановить изображение. Если на изображении есть однотонные области длиной больше L, то в середине такой области S = D.
РМ>Преполагаю не мудрствуя лукаво использовать уже написанные функции поворота изображения и сделать именно по этой формуле. От пользователя понадобится указать только направление и длину смаза, ну и если будут проблемы, то и точки, где цвета правильные.
РМ>Далее пользователь может применить программу несколько раз, например отдельно для фона, отдельно для перднего плана и ручками совместить реультат в фотошопе.
РМ>Осталось запрограммировать и посмотреть, что получится
Получилось? Просто мне тоже надо решить такую же проблему.
Здравствуйте, Reunion, Вы писали:
R>Получилось? Просто мне тоже надо решить такую же проблему.
Не-а. Надо еще что-то думать. Проблема в том, что надо очень точно определитбь величину смаза и найти опорные точки сложно...
Здравствуйте, Рома Мик, Вы писали:
РМ>Вот такая задачка иинтересная возникла. Есть изображение, смазанное из-за того, что у фотографа рука дрогнула. Нужно по возможности (очевидно, что всей информации в картинке уже нет) найти изображение, которое бы получилось, если бы рука не дрогнула. Для начала можно считать, что известно в какую сторону и насколько пикселов дрогнула рука, кроме того можно считать что дергалась она прямолинейно. Что-то ничего в голову не идёт, хотя чувствую, что как-то улучшить изображение все же можно.
обратная фильтрация, деконволюция. обсуждалось в форуме ixbt. основная идея у меня была такая, что по изображению точечного источника ворсстановить траекторию и собрать вдоль нее сигнал обратно в точку.
Здравствуйте, piAnd, Вы писали:
A>Здравствуйте, michus, Вы писали:
M>>Смоделируй прямой процесс: из нормального в — смазанное. Там и об обратном додумаешься. A>Это не сработает. Обратного процесса не вывести, имея только смазанное изображение. A>Тут работает не просто фильтр, а неизвестное наложение друг на друга сдвинутых одинаковых кадров, слегка афинно преобразованных. Вобщем теоретически задача не решаема. Хотя слышал, что если иметь исходное несмазанное изображение, или его статистические характеристики, то можно отсечь "более слабые его примеси", т.е. блюр смоется. Ссылки на статью забыл...
не выносите приговор слишком быстро. такие вещи, как статистическая деконволюция, и ее повсеместное применение в обработке сигналов — очень мощная вещь.
Здравствуйте, Dimonka, Вы писали:
D>Здравствуйте, Рома Мик, Вы писали:
РМ>>Вот такая задачка иинтересная возникла. Есть изображение, смазанное из-за того, что у фотографа рука дрогнула. Нужно по возможности (очевидно, что всей информации в картинке уже нет) найти изображение, которое бы получилось, если бы рука не дрогнула. Для начала можно считать, что известно в какую сторону и насколько пикселов дрогнула рука, кроме того можно считать что дергалась она прямолинейно. Что-то ничего в голову не идёт, хотя чувствую, что как-то улучшить изображение все же можно.
D>Проблема в том, что заблюренность получается не везде одинаковая и зависит от расстояния до объекта.
это в случае нефокуса. а в случае дрожания рук имеем почти параллельный перенос
Здравствуйте, Megabyte, Вы писали:
M>обратная фильтрация, деконволюция. обсуждалось в форуме ixbt. основная идея у меня была такая, что по изображению точечного источника ворсстановить траекторию и собрать вдоль нее сигнал обратно в точку.
Идея-то понятна. А можно конкретики, формул например.
D>Проблема в том, что заблюренность получается не везде одинаковая и зависит от расстояния до объекта.
Если "дрогула рука", то смаз примерно одинаковый по площади кадра.
Я где-то с месяц назад занимался этой же проблемой. Для идеальных изображений неплохие результаты дает винеровская фильтрация и фильтрация по Тихонову. Т.е. если взять изображение и в фотошопе его смазать или расфикусировать, то данными фильтрами можно полностью восстановить исходное изображение (кроме краев). В реальности качество восстановления ограничивает шумы и неоднородность искажающей функции по полю изображения.
Резюме — для некоторых случаев реальных изображений вполне можно улучшить качество.
P.S. Есть куча специальных программ и плагинов к фотошопу, которые заточены именно под восстановление смазанных и расфокусированных изображений. Они используют фильтры, подобные вышеназванным.
Здравствуйте, Y-Vladimir, Вы писали:
D>>Проблема в том, что заблюренность получается не везде одинаковая и зависит от расстояния до объекта.
YV>Если "дрогула рука", то смаз примерно одинаковый по площади кадра. YV>Я где-то с месяц назад занимался этой же проблемой. Для идеальных изображений неплохие результаты дает винеровская фильтрация и фильтрация по Тихонову. Т.е. если взять изображение и в фотошопе его смазать или расфикусировать, то данными фильтрами можно полностью восстановить исходное изображение (кроме краев). В реальности качество восстановления ограничивает шумы и неоднородность искажающей функции по полю изображения.
А где-нибудь можно почитать/посмотреть исходники этого дела?
YV>Резюме — для некоторых случаев реальных изображений вполне можно улучшить качество.
YV>P.S. Есть куча специальных программ и плагинов к фотошопу, которые заточены именно под восстановление смазанных и расфокусированных изображений. Они используют фильтры, подобные вышеназванным.