Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 10.10.2022
Сообщений: 9

Зашумление изображений

02.11.2022, 23:03. Показов 3651. Ответов 10

Студворк — интернет-сервис помощи студентам
Здравствуйте, нам дали интересную задачу (убрать зашумление типа "соль" с чб изображения медианной фильтрацией в скользящем окне). НО!! Использовать OpenCV нельзя. Используем в задании данные библиотеки:
import numpy as np
from skimage.io import imread
import matplotlib.pyplot as plt

Как в целом эта программа вообще должна выглядеть?
Ниже представлена имеющаяся программа, где я создавала шум))
 Комментарий модератора 
П.5.18.Правил
Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.
Программы нужно выкладывать текстом
Миниатюры
Зашумление изображений   Зашумление изображений  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.11.2022, 23:03
Ответы с готовыми решениями:

Зашумление изображения
Всем привет) Каким образом можно сделать шум на изображении, есть формула c' = c + (index + 255-127) где index от 0..1 Пользуясь этой...

Зашумление картинки
Помогите, пожалуйста с программой. Нужно добавить шум в картинку(ч/б). Нашла в интернете процедуру по добавлению шума, но абсолютно не знаю...

Зашумление изображения v2.0
Всем доброго времени суток! Нашла интересную и полезную тему на просторах форума...

10
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,760
03.11.2022, 08:22
Как по мне, N у вас великовато... Медианная фильтрация поможет, но не полностью.
Быстрый вариант:
Python
1
2
3
4
5
6
7
8
import numpy as np
from numpy.lib.stride_tricks import sliding_window_view
im_n=np.random.randint(0,255, size=(12,10), dtype=np.uint8) # test noise_image
sl_w=sliding_window_view(im_n, (3,3)) # window size is  3x3
sl_w=sl_w.reshape(sl_w.shape[0],sl_w.shape[1],-1) #reshape
im_denoise=np.median(sl_w, axis=2) #median filter
# test:
print(np.all(np.median(im_n[:3,:3])==im_denoise[0,0]))
Медленный вариант это использование двух циклов for.. неинтересно.
2
533 / 438 / 47
Регистрация: 17.07.2013
Сообщений: 2,236
03.11.2022, 11:24
Цитата Сообщение от masy876 Посмотреть сообщение
Использовать OpenCV нельзя
Используйте другие библиотеки, их не менее десятка
0
03.11.2022, 12:01

Не по теме:

Nick07, а какие еще библиотеки для обработки изображений есть? На ум приходят только:
pillow - для новичков
scikit-image - отличная вещь, на уровне OpenCV, а где-то и лучше.
биндинги к imagemagick - всеядный монстр, но не очень быстрый.
Еще что-то в scipy было для картинок, насколько помню...
Что еще есть из популярного?

0
0 / 0 / 0
Регистрация: 10.10.2022
Сообщений: 9
03.11.2022, 13:26  [ТС]
N мы сами задаем, поэтому можно его уменьшить (это не принципиально). Спасибо, а не подскажете что вы использовали во второй строчке?

Добавлено через 2 минуты
Дело в том, что нам нельзя использовать библиотеки, которые мы не проходили)) Поэтому хотелось бы уточнить, можно ли решить данную задачу с самым элементарным набором библиотек, по типу тех, что представлены у меня в вопросе
0
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,760
03.11.2022, 13:51
masy876, там импорт функции, создающий из массива массив плавающих окон, это если грубо говорить. Подробности - в документации на сайте numpy, там же есть и примеры - это будет первичный источник информации, а не мой пересказ.

Добавлено через 9 минут
Вообще, данный конкретный тип шума (salt как часть шума типа salt-and-pepper), лучше удалять не фильтрацией со скользящим окном, а фильровать только белые пиксели локальным усреднением/медианой.
1
0 / 0 / 0
Регистрация: 10.10.2022
Сообщений: 9
03.11.2022, 14:30  [ТС]
подскажите, почему при выводе изображений, после этой программы, они представлены фрагментами, а не цельными изображениями
0
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,760
03.11.2022, 14:39
masy876, приведите полный текст вашей программы в тегах Python. Не понимаю о каких фрагментах идет речь.
0
0 / 0 / 0
Регистрация: 10.10.2022
Сообщений: 9
03.11.2022, 14:43  [ТС]
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import numpy as np
from numpy.lib.stride_tricks import sliding_window_view
im_nm = im_n.copy()
im_nm = np.random.randint(0,255, size = (12,10), dtype=np.uint8) # test noise_image
sl_w = sliding_window_view(im_nm, (3,3)) # window size is  3x3
sl_w = sl_w.reshape(sl_w.shape[0],sl_w.shape[1], -1) #reshape
im_denoise = np.median(sl_w, axis=2) #median filter
# test:
print(np.all(np.median(im_nm[:3,:3])==im_denoise[0,0]))
 
#Вывод изображений
 
fig, ax = plt.subplots(1, 2, figsize=(14, 12))
ax[0].imshow(im_denoise, cmap="gray", vmin = 0, vmax = 255)
ax[0].set_title('Отфильтрованное изображение') # заголовок 
ax[1].imshow(im_n, cmap="gray", vmin = 0, vmax = 255)
ax[1].set_title('Зашумленное изображение') # заголовок 
plt.show() # рисуем график
Миниатюры
Зашумление изображений  
0
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,760
03.11.2022, 15:00
masy876, мне кажется вы вообще не разбираетесь в Python. И код в первом сообщении не ваш.
Иначе вы бы не стали тупо копировать мой код вместе с тестовой случайной картинкой (3я строка у меня) и надеятся на результат.
Научитесь читать и понимать код. Всего доброго.
И про теги Python снова забыли?
0
0 / 0 / 0
Регистрация: 10.10.2022
Сообщений: 9
03.11.2022, 15:10  [ТС]
Не буду врать, но понимаю я действительно мало что. Очень тяжко идет. Препод у нас не самый лучший, да и самому очень тяжело в понимании. Но спасибо, не знаю почему, не обратил внимание на эту строчку. Теперь понял в чем была проблема.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.11.2022, 15:10
Помогаю со студенческими работами здесь

Зашумление изображения импульсным и аддитивным шумом
Подскажите как сделать "Зашумление изображения импульсным и аддитивным шумом" Добавлено через 11 минут и подскажите как сделать...

Макрос для вставки изображений в Word и изменения размера изображений (не работает)
В программировании большой новичок! По работе необходимо составлять фототаблицы, иногда бывает по 500 фоток, нашел макрос для Word,...

Низкочастотная фильтрация изображений (книга Гонсалеса “Цифровая обработка изображений”)
Здравствуйте. Я пытаюсь реализовать на java низкочастотную фильтрацию изображений. Реализую по книге Гонсалеса "Цифровая...

Смена изображений при обновлении страницы. Адаптивность изображений
Здравствуйте! Нашел скрипт, который изменяет изображение при обновлении страницы, он меня устраивает, но не могу понять, каким образом в...

Кодирование изображений и их защита файлов изображений от несанкционированного доступа
Нужны мысли, исходники программ по поводу этой темы. Примерный алгоритм действий есть: Кодирование: Разбить изображение на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru