![]() |
|
|
![]()
|
|
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 5 Всего: 121 |
Здравствуйте!
Имеется изображение с вертикальным сдвигом на ~10 пикселей (см. приложение). Т.е. создаётся такой эффект, что на исходное изображение наложили сверху это же изображение сдвинутое по вертикали на n-ое количество пикселей. Можно ли с этим как-то бороться? Хотя бы частично улучшить ситуацию? Присоединённый файл ( Кол-во скачиваний: 34 )
focus.png 354,59 Kb-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
наложение со сдвигом можно представить в виде линейного фильтра
и его можно обратить в некоторых ситуациях рисунок выглядит так, как будто к нему применили такую операцию: B(x,y)=(A(x,y)+A(x,y+10))/2 соответственно, получаем: A(x,y+10)=2*B(x,y)-A(x,y) т.е. зная первые 10 строчек мы можем восстановить изображение две неприятности: 1. точно первые 10 строчек мы не знаем 2. ошибки округления и шумы накапливаются в принципе, с этим бороться можно, но лучше попробовать по-простому: сказать, что первые 10 строчек полностью чёрные (или выбрать их средний цвет) и запустить этот алгоритм - вдруг результат будет иметь приемлемое качество... Это сообщение отредактировал(а) maxim1000 - 18.5.2011, 10:29 -------------------- qqq |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 5 Всего: 121 |
maxim1000, спасибо за идею. Это действительно самое простое решение с которого следует начать. Вероятно, в качестве значения A(x,y) лучше брать среднее значение некоторой окрестности.
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 5 Всего: 121 |
Попробовал на простейшем примере, сработало (см. simple.png, слева картинка со сдвигом, справа восстановленная, которая точно соответствует оригиналу).
Далее попробовал тот же код на картинке из первого поста (см. filtered.png). Можно заключить, что подход не сработал. В качестве начального приближения значений пикселей в первых 10 строчках брал их среднее. Пытаюсь сейчас применить деконволюцию. Пока не очень получается. Присоединённый файл ( Кол-во скачиваний: 20 )
simple.png 33,84 Kb-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 5 Всего: 121 |
Ещё одна картинка для предыдущего поста.
Присоединённый файл ( Кол-во скачиваний: 19 )
filtered.png 486,45 Kb-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
да, похоже, основная проблема - накопление ошибок - даёт себя знать...
если я правильно понимаю её описание, то в общем-то "A(x,y+10)=2*B(x,y)-A(x,y)" - это она и есть нужно как-то затушить шум например, можно попробовать использовать среднее значение не только для первых строчек, но и для остальных: 1. C(x,y+10)=2*B(x,y)-A(x,y) 2. D(x,y+10)=средний цвет исходного изображения вокруг (x,y+10) 3. A(x,y+10)=C(x,y+10)*0.9+D(x,y+10)*0.1 0.9 и 0.1 - здесь можно поиграться, главное, чтобы в сумме была 1 увеличение второго будет лучше подавлять шумы, но начнёт "проглядывать" исходное изображение со всеми своими "дубликатами" -------------------- qqq |
|||
|
||||
| esperanto |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 31.5.2003 Репутация: 2 Всего: 4 |
А исходное изображение
Б - матрица светки (1 0 0 0 0 0 0 0 0 1) Новое изображение это сверта А с Б делаем трансформ фурье Ф(А-Б) по теореме о сверте Ф(А-Б)=Ф(А)Ф(Б) Откуда Ф(а)=Ф(а-б)\Ф(Б) Находим А используя обратную трансформацию фурье не забыть предотвратить деление на ноль --------------------
B.Sc ->M.Sc.->Microsoft SDE-> (Ph.D. student + Intel SDE + psyсhology B.A) - > Skype SDET |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 5 Всего: 121 |
esperanto, насколько я понимаю, этот подход приведёт к аналогичному приумножению высокочастотного шума, только в частотной области. Фактически ты описал деконволюцию в частотной области, а она нестабильна. Но это мне напомнило про фильтры Вейнера, сейчас попытаюсь применить.
maxim1000, попробовал регуляризацию, которую ты предложил (см. regularized.png), оптимальные коэффициенты оказались в районе 0.7/0.3. Шума стало меньше, но если присмотреться, то все объекты умнодились на два, т.е. вместо 2х кратного наложения, теперь имеем 4х кратное. Не могу понять что не так. Код очень простой (matlab):
Присоединённый файл ( Кол-во скачиваний: 15 )
regularized.png 480,58 Kb-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 5 Всего: 121 |
Вот результат применения фильтра Вейнера для деконволюции. Пример синтетический. На реальных данных результат скорее неудовлетворительный. Лучше во всяком случае не стало.
Присоединённый файл ( Кол-во скачиваний: 17 )
deconvolved.png 59,08 Kb-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
что не так - понятно: т.к. для регуляризации использовалось исходное изображение, то его ненужные части оказались на результате а нужно полное восстановление серого изображения, или можно восстановить бинарное? (т.е. просто выделить яркие области на чёрном фоне) -------------------- qqq |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 5 Всего: 121 |
maxim1000, всё зависит от того какие области считать яркими? Цвету (яркости) в моём случае соответствует вполне конкретный физический параметр -- температура. В общем нужна возможность задавать пороговое значения.
Твоя идея состоит в том, чтобы после деконволюции провести пороговую фильтрацию? -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
пришла одна мысль - воспользоваться тем, что преимущественно у нас отдельные объекты на тёмном фоне
т.е. нам нужно просто оставить верхний из объектов
-------------------- qqq |
|||
|
||||
| esperanto |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 31.5.2003 Репутация: 2 Всего: 4 |
Нельзя ли формально описать -аналогичное приумножение высокочастотного шума - что Вы имеете в виду? -нестабильна в частотой области? - это что за зверь? Необохдимо помнить, что если мы посмоитрим кривую чувствительности зрительных нейрнов коры мозга находящихся в зрительном кортексе зоны 17, то эти нейроны мало чувствительны к высоким частотам, поэтому можно позволить относительно высокие шумы на высоких частотах. Так же я написал необходимо правильно обработать деление на ноль, дабы нивировать искжаение высоких частот. --------------------
B.Sc ->M.Sc.->Microsoft SDE-> (Ph.D. student + Intel SDE + psyсhology B.A) - > Skype SDET |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 5 Всего: 121 |
AFAIK, деконволюция относится к классу обратных задач, которые нестабильны по своей природе. Наверное я неправильно выразился выделив именно частотную область. Было у меня формальное доказательство этого факта в какой-то статье, но я забыл в какой именно. Гугл дал эту ссылку: http://cnx.org/content/m13144/latest/ Там тоже объясняется. Добавлено через 10 минут и 34 секунды Отличная идея между прочим Светлые объекты вроде как даже сфокусировались (см. original.png и threshold.png). Однако тёмные стали ещё более размытыми. Присоединённый файл ( Кол-во скачиваний: 14 )
threshold.png 293,90 Kb-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 5 Всего: 121 |
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |