Разделение рукописных чисел на бумаге в клетку образует фон

Я новичок в Matlab, и я пытаюсь написать код, который может отделить рукописные числа от фона страницы в квадрате. Я пытался использовать kmeans, чтобы отличать числа от линий и сквайров, но это не работает на всех изображениях. Любые идеи, как я могу это сделать? Tahnks!

1 ответ

Я использую пакет EBImage в R, но я уверен, что вы можете найти эквивалент в Matlab:

Начиная с исходного изображения:

# Чтение и извлечение изображения в оттенках серого 
# Запустите kmeans с 3 центрами 
km = kmeans(as.vector(x), 3)
с = км $ центров

# 1 0.4936797
# 2 0.2841005
# 3 0.6456494

# Извлечь наименьший кластер 2 (ваши числа) в виде двоичного изображения
t = (км $ кластер ==2)
r = матрица (t, nrow(x))

Теперь r выглядит так:

# Применить морфологическое отверстие (разрушить, затем расширить) с наименьшим возможным структурным элементом
kern = makeBrush(3, 'box')

#[,1] [,2] [,3]
#[1,]    1    1    1
#[2,]    1    1    1
#[3,]    1    1    1

z = открытиеГрейскейл (р, керн) 

Z теперь выглядит как

Другие вопросы по тегам