Морфологическая обработка изображений
Место морфологической обработки Объект Изображение Обработка Результат Анализ Мат. морфология Морфологическая обработка изображений ПРЕДМЕТ МАТЕМАТИЧЕСКОЙ МОРФОЛОГИИ
Бинарное изображение – изображение, пиксели которого принимают всего два значения (0 и 1). Широко известный способ - устранение шума с помощью операций математической морфологии: Сужение (erosion) Расширение (dilation) Закрытие (closing) Раскрытие (opening) Морфологическая обработка бинарных изображений
Расширение (Dilation) A (+) B = {t R 2 : t = a + b, a A, b B} B A (+) B Морфологическая обработка бинарных изображений Операция математической морфологии «Расширение»
void Dilation(BIT* src[], bool* mask[], BIT* dst[]) { // W, H – размеры исходного и результирующего изображений // MW, MH – размеры структурного множества for (y = MH/2; y < H – MH/2; y++) { for (x = MW/2; x < W – MW/2; x++) { BIT max = 0; for (j = -MH/2; j
Сужение (Erosion) A (-) B = (A C (+) B) С, где A C – дополнение A A(-)B B A Морфологическая обработка бинарных изображений Операция математической морфологии «Сужение»
void Erosion(BIT* src[], bool* mask[], BIT* dst[]) { // W, H – размеры исходного и результирующего изображений // MW, MH – размеры структурного множества for (y = MH/2; y < H – MH/2; y++) { for (x = MW/2; x < W – MW/2; x++) { BIT min = MAXBIT; for (j = -MH/2; j
Коммутативный закон A (+) B = B (+) A A (-) B B (-) A Ассоциативный закон A (+) (B (+) C) = (A (+) B) (+) C A (-) (B (-) C) = (A (-) B) (-) C Морфологическая обработка Свойства морфологических операций
Морфологическое раскрытие (opening) open(A, B) = (A (-) B) (+) B Морфологическое закрытие (closing) close(A, B) = (A (+) B) (-) B Морфологическая обработка операции «Раскрытие» и «Закрытие»
Морфологическая обработка пример обработки бинарных изображений A B A (+) BA (-) B (A (+) B) (-) B(A (-) B) (+) B
A B A (+) B (A (+) B) (-) B(A (-) B) (+) B A (-) B Морфологическая обработка пример обработки бинарных изображений
Пример применения операции ММ «Сужение» к бинарному изображению с сильным шумом
Пример применения операции ММ «Раскрытие» к бинарному изображению с сильным шумом
СужениеРаскрытие Сравнение результатов обработки морфологических операций «Сужение» vs «Раскрытие»
Пример бинарного изображению с дефектами распознаваемых объектов Компенсация внутренних дефектов распознаваемых объектов при помощи морфологической обработки
Пример применения операции ММ «Закрытие» к бинарному изображению с дефектами объектов
Не во всех случаях математическая морфология так легко убирает дефекты, как хотелось бы… Не лучший пример для применения морфологической обработки
Пример применения операции ММ «Раскрытие» к бинарному изображению
Формирование внутреннего контура C I = A – (A (-) B) Формирование внешнего контура C O = (A (+) B) – A Формирование контура объектов на основе морфологической обработки ОПЕРАЦИЯ ОКОНТУРИВАНИЯ ОБЪЕКТА
Пример формирование контура объекта ОПЕРАЦИЯ ОКОНТУРИВАНИЯ ОБЪЕКТА
Формирование скелетов объектов на основе морфологической обработки МОРФОЛОГИЧЕСКАЯ СКЕЛЕТИЗАЦИЯ
n-е сужение объекта A структурным множеством B E n (A) = A (-) nB K n (A) = E n (A) – open(E n (A), B 1 ), где B 1 имеет вид N таково, что E N-1, а E N = skel(A) = K n (A), n = 0 … N-1 Формирование скелетов объектов на основе морфологической обработки МОРФОЛОГИЧЕСКАЯ СКЕЛЕТИЗАЦИЯ ПРЕОБРАЗОВАНИЕ СЕРЕДИННОЙ ОСИ
void Skeleton(BIT* img[], BIT* skel[]) { BIT eimg[W][H], oimg[W][H]; bool EMsk[3][3], OMsk[3][3]; for(m = 0; m < 3; m++) for(n = 0; n < 3; n++) EMask[m][n] = OMask[m][n] = TRUE; OMsk[0][0] = OMsk[0][2] = OMsk[2][0] = OMsk[2][2] = FALSE; while( !empty(img) ) { Open(img, OMsk, oimg); for(y = 0; y < H; y++) for(x = 0; x < W; x++) { pixel = img[x][y] – oimg[x][y]; skel[x][y] = skel[x][y] | pixel; } Erosion(img, EMask, eimg); Copy(img, eimg); } Морфологическая обработка бинарных изображений Алгоритм скелетизации
Пример морфологической обработки «Скелетизации» 1
Пример морфологической обработки «Скелетизации» 2
Морфологическая обработка бинарных изображений Ускорение обработки (Усеченные маски) аб Предлагаемые примеры масок морфологической операции расширения: а) оригинальные, б) усечённые
Морфологическая обработка бинарных изображений Ускорение обработки (Центральный монолит) Примеры масок морфологической обработки: а) обладающих центральным монолитом, б) не обладающих центральным монолитом а б
Результат морфологических операций во многом определяется применяемым структурным элементом. Выбирая различный структурный элемент можно решать разные задачи обработки изображений: Шумоподавление Выделение границ объекта Выделение скелета объекта Выделение сломанных зубьев на изображении шестерни Реконструкция границ объекта Реконструкция внутренней области объекта Модификацию контурного представления Заключение по морфологической обработки изображения