OpenCV — Выровненная по оси ограничительная рамка двоичного объекта

Итак, у меня есть это изображение с оранжевым конусом движения

Исходное изображение

Я отфильтровал все цвета, которые я не хочу

Отфильтрованное изображение

Теперь я хочу нарисовать рамку вокруг конуса. Я хотел бы сделать это путем определения максимальной верхней и нижней границ конуса, а также максимальной левой и правой границ конуса. В основном, местоположение самого высокого белого пикселя, самого низкого белого пикселя, самого левого белого пикселя и самого правого белого пикселя.

Я знаю, как рисовать линии, но я не знаю, как найти границы конуса.

Идея состоит в том, чтобы найти коробку вокруг конуса, чтобы я мог определить центр тяжести конуса.

Любая помощь приветствуется.

1

Решение

Предполагая, что изображения загружаются в массив … вы можете использовать следующий алгоритм.

long top, bottom, right, left;
bottom = right = -1;
top = maxrows;
left = maxcolumns;

for(long row = 0; row < maxrows; row++)
{
for(long column = 0; column < maxcolumns; column++)
{
if(true == IsPixelWhite(image[row][column])
{
if(row > bottom)  bottom = row;
if(column > right) right = column;
if(row < top)  top = row;
if(column < left) left = column;
}
}
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]