Обнаружение границ в изображении - PullRequest
1 голос
/ 09 июня 2011

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

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

Это работает только в том случае, если пользователь случайно не касается шара или внутри замкнутого контура ...

Вот графическое представление моегопроблема:

*, фон темного цвета

пробелы, фон светлого цвета

+, шары

*********************************

***                           ***

***                           ***

***                           ***

***   +    +  + ++    ++      ***

*** +     +     ++   +   +    ***

***   +    +    + +  +    +   ***

*** +        +     + +   +    ***

***        +    +  + ++       ***

*** +     +     ++   +   +    ***

***                           *** 

*********************************

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

Есть предложения?

Спасибо, pmc

Ответы [ 2 ]

0 голосов
/ 09 июня 2011

Скажите, что ваш источник в левом нижнем углу.Положительное значение x направо, а положительное значение y увеличено.

Ваша левая граница будет минимальным значением (x_i - r_i), где x_i - координата x шара i, а r - радиус шараi.

Ваша правая граница будет максимальным значением (x_i + r_i).

Ваша нижняя граница будет минимальным значением (y_i - r_i).

Ваша верхняя граница будет максимальным значением (y_i + r_i).

0 голосов
/ 09 июня 2011

Прямоугольник, в котором хранятся все шары, можно вычислить простым вычислением минимума и максимума. Вам просто нужно найти минимальное значение (позиция - радиус) и максимум для (позиция + радиус) в обеих координатах. Конечно, это предполагает, что шары были нарисованы вами или, по крайней мере, их координаты известны. В противном случае это проблема компьютерного зрения, хотя и простая, поскольку у мобильного устройства нет такого большого экрана, чтобы сделать невозможным полное пиксельное сканирование.

...