Skip to content

Распознавание изображений по геометрической форме

License

Notifications You must be signed in to change notification settings

egormorgunov/object_recognition

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Распознавание изображения по форме

Программа по распознаванию изображений по их геометрической форме. Определение изображения происходит путем перевода в формат полутонов и наложения фильтра Щарра для определения границ. Алгоритм определения заключается в рассмотрении расстояния до контура объектов. Используемые библиотеки - skimage и matplotlib.

Выделение контура

Алгоритм распознавания изображения по форме основан на методе выделения контура путем вычисления значения яркости по координатам изображения. Для успешного выделения контура предполагается, что яркость объекта и фона существенно отличаются друг от друга. Для более точного определения изображения используются различные операторы выделения границ. Фильтры, выделяющие контурные линии, можно отнести к высокочастотным фильтрам, т.е. подавляющим низкочастотную составляющую изображения. Теоретически на результирующем изображении яркость должна быть отлична от нуля только у пикселей, входящих в контурную линию, однако из-за наличия шумовых помех такого эффекта удается достичь не всегда.

Оператор Щарра

Большим недостатком других операторов (особенно Собеля) является отсутствие полной вращательной симметрии. Оператор Щарра существенно снижает отрицательные эффекты за счет использования измененных ядер свертки. Данный оператор более чувствителен при извлечении границы и способен извлекать меньшие границы. Однако отсюда повышается вероятность ошибки, поэтому большая чувствительность может быть рискованной.

image

Программа сравнивает изображения двух различных фруктов - мандарина и груши. Поскольку фрукты сильно отличаются по форме, данный алгоритм позволяет наиболее точно определить необходимый нам фрукт.

Обработка изображений реализована с помощью библиотеки skimage, которая считывает изображения, переводит их в формат полутонов и накладывает фильтр Щарра. После наложения фильтра происходит рассчет суммы значений яркости изображения в пикселях по горизонтали и вертикали. Если очертания изображения касаются рамок - программа определяет изображение, как мандарин. Если же от какой-либо из осей есть значительное отдаление - программа выводит сообщение, что данное изображение - груша.

// Алгоритм определения изображения
for i in range(20):
    sum1 += img1Scharr[50][i]
    sum2 += img1Scharr[i][50]
    sum3 += img2Scharr[50][i]
    sum4 += img2Scharr[i][50]
if sum1 < 1 and sum2 > 1:
    print('First image is tangerine')
else:
    print('First picture is pear')
if sum3 < 1 and sum4 > 1:
    print('Second image is tangerine')
else:
    print('Second picture is pear')

About

Распознавание изображений по геометрической форме

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages