Определить фигуры с помощью Matlab - PullRequest
1 голос
/ 26 марта 2011

Я создал некоторый код MATLAB, который находит фигуры на изображении, используя функции regionpros и bwbounaries.

У меня есть:

STATS = regionprops(L, 'all');

и из STATS я могу легко найти все свои фигуры Площадь и Периметр.Моя проблема заключается в следующем: я хочу найти «квадратные» фигуры, и я делаю во всех формах следующий расчет 16 * area / (perimeter * perimeter), если это значение близко к единице, то я «могу» иметь квадрат.Но и другие фигуры, такие как круги или прямоугольники, тоже рядом.(Также некоторые квадраты могут быть повернуты на изображении.)

Есть ли лучший способ различать формы (например, круги, треугольники ...)?

1 Ответ

2 голосов
/ 27 мая 2011

Matlab имеет функцию

procrustes(X,Y)

, который вычислит расстояние между двумя фигурами на основе типов преобразований, которые потребуются для перемещения точек, определенных X, в точки, определенные Y. Для многих задач классификации фигур минимизация этого расстояния является полезным способом категоризации шумных экземпляров. форм. Если ваша задача имеет «идеальные» формы, это должно работать очень хорошо. Просто установите Y в качестве идеального квадрата, и всякий раз, когда линейное преобразование из X в Y является чистым масштабированием, тогда вы знаете, что X также является квадратом. Вы можете сделать несколько простых логических проверок, чтобы выбрать только фигуры, удовлетворяющие этому виду свойства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...