Обнаружение границ и сегментация

Я пытаюсь извлечь объект из изображения бумажной валюты. К исходному изображению я применил обнаружение границ Собеля. Вот изображение:

введите здесь описание изображения

Мой вопрос заключается в следующем обрезанном изображении. Я хочу, чтобы отображалось только число 100 без других шумов. Как я могу это сделать, пожалуйста?

введите здесь описание изображения

Код, который я использовал до сих пор:

close All;
clear All;
Note1 = imread('0001.jpg');
Note2 = imread('0007.jpg');
figure(1), imshow(Note1);
figure(2), imshow(Note2);

Note1=rgb2gray(Note1);
Note2=rgb2gray(Note2);
Edge1=edge(Note1,'sobel');
Edge2=edge(Note2,'sobel');
figure(5), imshow(Edge1),title('Edge sobel1');
figure(6), imshow(Edge2),title('Edge sobel2');

rect_Note1 = [20 425 150 70];
rect_Note2 = [20 425 150 70];
sub_Note1 = imcrop(Edge1,rect_Note1);
sub_Note2 = imcrop(Edge2,rect_Note2);
figure(7), imshow(sub_Note1);
figure(8), imshow(sub_Note2);

Для полноты картины исходное изображение:


person user3472037    schedule 24.06.2014    source источник
comment
Вам нужно распознать только 100 банкнот Birr или любое количество Birr? Ограничивается ли поиск быром или он должен применяться к любой валюте, в банкнотах которой используются арабские цифры?   -  person Rody Oldenhuis    schedule 24.06.2014
comment
Не могли бы вы также опубликовать исходное изображение, пожалуйста?   -  person kkuilla    schedule 24.06.2014
comment
@ Роди, я узнаю все записи Бирра. Я хотел, чтобы только 100 объектов на обрезанном изображении подсчитывали количество белых пикселей в объекте. В качестве техники распознавания я буду использовать количество белых пикселей в соответствующих заметках, то есть 1, 5, 10, 50 и 100 заметок. Кроме того, я обрежу некоторые важные функции на каждой банкноте, чтобы узнать, является ли она подлинной или поддельной валютой, применяя ту же технику, о которой я упоминал ранее. Я очень новичок в мат-лаборатории и нашел эту технику как-то управляемой.   -  person user3472037    schedule 24.06.2014
comment
@kkuilla Вот ссылка на исходное изображение: imgur.com/um808ai&0EIkmP0&Pvob7Ku#1   -  person user3472037    schedule 24.06.2014
comment
Вы устали от преобразования ширины штриха (SWT)?   -  person Shai    schedule 24.06.2014


Ответы (1)


Используйте фильтр Гаусса, чтобы очистить шум перед применением детектора границ:

% Create the gaussian filter with hsize = [5 5] and sigma = 3.5
G = fspecial('gaussian',[7 7], 3.5);
Note1f = imfilter(Note1,G,'same');
Edge1f=edge(Note1f,'sobel');
sub_Note1f = imcrop(Edge1f,rect_Note1);
figure(6), imshow(sub_Note1f);

Это приводит к более чистому изображению 100 введите описание изображения здесь

Вы также можете использовать детектор границ Кэнни вместо преобразования Собеля.

Edge1c = edge(Note1,'canny', [0.2, 0.4] , 3.5);
sub_Note1c = imcrop(Edge1c,rect_Note1);
figure(7), imshow(sub_Note1c);

введите здесь описание изображения

person Bull    schedule 24.06.2014