JavaRush /Java блог /Random UA /Пошук центру неправильної фігури на площині
fatfaggy
26 рівень
Киев

Пошук центру неправильної фігури на площині

Стаття з групи Random UA
Всім привіт. Вирішаю зараз завдання одне просте. Умова звучить приблизно так:
Дано матрицю (двовимірний масив), в якій кожен елемент являє собою піксель. Пікселі можуть бути червоного кольору, чорного або якогось іншого кольору. Необхідно реалізувати пошук на зображенні ефекту "червоних очей". Якщо центр чорних пікселів збігається з центром червоних пікселів - це означає, що ми знайшли "червоне око".
Мається на увазі, що межі діапазону червоних пікселів ширші за межі діапазону чорних. Також, не розглядаються варіанти, якщо на зображенні присутні червоні та чорні пікселі поза "очі". Все, що поза "очем" - буде іншого кольору. Я планував реалізувати за (приблизно) таким алгоритмом. Два цикли, один вкладений до іншого. Одним проходимося Х, другим - Y. Як тільки знайшли червоний піксель - фіксуємо його координати як початкові і шукаємо кінцеві координати. Як тільки виявляється, що червоні пікселі більше не з'являються - фіксуємо останній червоний піксель, який нам траплявся, як кінцеві координати діапазону червоних пікселів. Аналогічно і із чорними пікселями. Після чого ділимо діапазони навпіл і знаходимо центри. Такий алгоритм буде досить непогано працювати з фігурами більш-менш правильної форми (кола). І ось тут я вирішив ускладнити собі завдання)) А саме зрозуміти як покращити алгоритм для фігур неправильної форми. Наприклад, якщо у людини деякі проблеми із зором (у зв'язку з чим форма ока може бути неправильною), або фотка зроблена була під кутом, або ще якісь ситуації... Побіг пошук вивів мене на статті у вікіпедії про центр мас і барицентр . Але там так багато страшного та жахливого матана, що я вирішив поки що відкласти це і поцікавитися у спільноти, як би реалізували це ви? :)
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ