Выявить мелкие дефекты в контуре объектов
Я хочу соответствовать симметрии контуров объекта. Я пытался использовать matchShape(), computeDistance(), Humoments() из библиотеки opencv 3.0. Но ни один из них не близок к тому, что я хочу.
Ниже приведены изображения, над которыми я работаю.
Я ожидаю получить наибольшее значение несимметрии для изображения-2(с именем Defected)
1 ответ
Вы можете сделать это самостоятельно, используя несколько простых инструментов:
- Найти центроид
- Используйте PCA ( http://docs.opencv.org/master/d1/dee/tutorial_introduction_to_pca.html), чтобы найти основную ось
- Поверните фигуру так, чтобы главная ось указывала вверх
- В каждой строке подсчитайте количество пикселей по обе стороны от центра и сравните их (должна быть одна координата центра, возможно, с использованием медианного значения всех центров строк)
Вы можете настроить свои собственные пороги, чтобы соответствовать проблеме.