![]() |
|
|
![]()
|
|
| Чистый |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 23.7.2009 Репутация: нет Всего: нет |
В общем надо реализовать данный метод, но я видать что-то упускаю, так как результаты меня не впечатляют:
clear_img - исходное изображение ![]() img_3_noise - исходное изображение с 3% шума ![]() img_restore_porog_1_25 - восстановленное изображение с порогом 1,25 и окном фильтра 5х1 ![]() img_restore_porog_2_42 - восстановленное изображение с порогом 2,42 и окном фильтра 5х1 ![]() img_restore_porog_4_59 - восстановленное изображение с порогом 4,59 и окном фильтра 3х1 ![]() img_restore_porog_9_5 - восстановленное изображение с порогом 9,05 и окном фильтра 3х1 ![]() функция фильтрации имеет такой вид (окно фильтра 5x1):
функция фильтрации имеет такой вид: окно фильтра 3x1
|
||||
|
|||||
| tzirechnoy |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 1 Всего: 16 |
1) Хорошо бы приводить компилируемый код. Из вежливости, хотя бы. Да и для себя полезно: дописывать за Вас то, что Вы недописали жэлающих найдётся строго меньшэ, чем тех, которые возьмут то, с чем можно играться и поиграются -- соответственно, меньшэ людей смогут осмыслить Ваш код и что-то потом, возможно, предложыть.
2) Оригинальное (зашумлённое) изображэние при анализе должно оставаться оригинальным. Не надо его менять -- это делает фильтр более грустным. Это, вообще, подразумевается -- что фильтр имеет на входе исходное изображэние, и получает новое. Абстрактные описания алгоритмов фильтров рассчитаны именно на это, да там и переменные чаще всего разные. Исключения, когда можно объединить исходное и результирующее изображэние в одном месте памяти -- довольно редки (ну, точнее, дажэ в этом случае можно -- но требует некоторых ухищрений с хранением изменённого окна для будущих точек). 3) По очевидным причинам, порог должэн быть большэ 1/[размер окрестности] от большынства значений выбросов. Это при условии, что окрестности большынства выбросов не содержат другого выброса -- а если содержат, то ещё надо умножыть на нормальное количество выбросов в окрестности. Собственно, когда это не так, мы видим, что происходит: вместо того, чтобы уничтожаться -- импульсные выбросы расползаются на соседние точки. Для размера окрестности 4 (при матрицэ 5x1), и произвольных значениях яркости от 0 до 255 -- мы получаем вменяемые пороги где-то в районе 32..64 Для размера окрестности 2.... тут я лучшэ перейду к следующему вопросу. 4) Зачем Вы берёте такие странные окна? Ну да, на таких окнах понять что-то очень сложно. Попробуйте взять пять точек подряд и определить, какую из них надо выкинуть. Берите квадратные, притом 3x3 -- это в общем маловато, лучшэ хотя бы 5x5. |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |