Обработка изображений
Методы постобработки
Улучшение сегментации
Пред- и постобработка для улучшения сегментации
Сегментацию можно улучшить двумя способами: путем предварительной обработки изображения перед бинаризацией и путем постобработки самогó двоичного изображения.
Вы уже выполняли один этап предобработки, когда преобразовывали изображение в оттенки серого и настраивали контрастность. В следующих нескольких упражнениях вы будете использовать функцию фильтрации для улучшения результата бинаризации.
Фильтрация шума
Удаление шума с изображения
Шум на изображении
При съемке в условиях слабого освещения поднять яркость снимка можно, увеличив светочувствительность сенсора цифровой камеры. Многие современные цифровые фотоаппараты (включая камеры мобильных телефонов) автоматически увеличивают значение ISO при тусклом освещении. Однако это увеличение чувствительности усиливает и тепловой шум, улавливаемый датчиком, в результате чего изображение получается зернистым (как показано справа).
cd(@__DIR__);
using Images
using ImageShow
using ImageBinarization
I = load("IMG_005.jpg");
gs = Gray.(I);
BW = binarize(gs, Otsu());
simshow([gs BW])
Задание 1
Изображения, сделанные при слабом освещении, часто становятся шумными из-за увеличеной чувствительности камеры, которая необходима для получения изображения. Этот шум может помешать обработке, загрязняя области на бинаризованном изображении.
Чтобы уменьшить влияние этого шума на качество бинарного изображения, вы можете предварительно обработать изображение с помощью усредняющего фильтра.
В Engee для этого можно создать простой усредняющий фильтр с ядром размером n на n.
F = ones(n, n) / (n * n)
H.
Подсказка
Размер ядра для фильтра среднего значения определяет значение n.
Решение
H = ones(3, 3) / (3 * 3)
Задание 2
Вы можете применить фильтр F к изображению I с помощью функции imfilter.
Ifltr = imfilter(I, F);
H к изображению gs в оттенках серого. Сохраните результат в gssmooth.
Подсказка
Первый параметр, передаваемый функции imfilter, – изображение gs, а второй – фильтр H.
Решение
gssmooth = imfilter(gs, H)
Задание 3
Теперь, когда вы отфильтровали изображение, вы можете преобразовать его в бинарный вид. Снизил ли фильтр количество шума в двоичном изображении?
gssmooth.Сохраните результат в переменную
BWsmooth и выведите его на экран.
Подсказка
Чтобы бинаризовать изображение I с требуемыми параметрами, используйте функцию binarize.
BW = binarize(I, Otsu())
Решение
BWsmooth = binarize(gssmooth, Otsu())
simshow(BWsmooth)