Я работаю над приложением, которое будет сравнивать гистограммы в надежде сопоставить лица. Приложение позволяет пользователю сделать снимок, выбрать несколько ключевых точек на изображении, а затем приложение рисует круги вокруг этих точек. Затем я обнаруживаю круги с помощью функций OpenCV Hough Circle Transform. До этого момента приложение отлично работает.Обнаружить фигуры и создать гистограммы
Что мне нужно реализовать в настоящее время является одним из двух вариантов:
Detect круги и создавать отдельные гистограммы для области внутри каждого круга.
Обнаружите круги и затемните области вокруг кругов и создайте одну гистограмму.
Я склоняюсь к методу 2, но я не уверен, как маска/цвет/краска вокруг области за пределами кругов после их обнаружения. Любой вход был бы оценен. Благодарю.
Спасибо Тоторо. Вы второй момент понятен. Мне нравится ваша идея просто копировать важные регионы, я не совсем уверен, как это реализовать. Я знаю, что я могу вырезать/обрезать растровое изображение с использованием классов Canvas и Paint, но указание уникального пути (путей) на вырезание кажется немного недоступным на данный момент. – Rob
Если пользователь выбирает точки, вы можете использовать функцию для вычисления всех точек внутри круга вокруг этой точки в определенном радиусе. Алгоритм имеет следующий вид: 1. Возьмите квадрат вокруг точки с точкой в центре и диаметром круга, равным стороне квадрата. 2. Для каждой точки этого квадрата вычислите расстояние от центра. Удалите точки с расстоянием больше радиуса круга и скопируйте остальные на новое изображение. cv :: Mat - отличный класс, где вы можете многое сделать. Вы будете любить большинство функций, которые вам нужны прямо там. – Totoro
Спасибо Тоторо. Из-за ограничений по времени я пошел с более простым (хотя и не столь точным) методом. Я создаю один большой прямоугольник, чтобы заключить область входных штрихов и вырезать прямоугольник с холстом, clipRect(). На данный момент я думаю, что этого достаточно, но я могу уточнить его позже для большей точности. Я ценю ваше время благодарю вас. – Rob