У меня есть мой тезис «Проверка множественного выбора экзамена», и у меня есть большая проблема о том, что делать с моей проблемой. Я получил изображение кадра (растровый специально) здесь есть, так что вы можете увидеть:Как сгруппировать близлежащие координаты
Это изображение с detectedbox, я опишу это:
- Это экзаменационная бумага, 1-50 предметов. каждый номер имеет соответствующее поле (правая сторона номера, который служит в качестве контейнера для ответа)
- Эти снимки являются всего лишь образцом, количество обнаруженных ящиков может отличаться. Мое приближение состоит в том, что оно содержит 150-200 обнаруженных ящиков.
- Каждый detectedboxes хранятся в List (MCvBOX2D), который держит их размер detectedboxes', центр и т.д.
- я передал те координаты центра в новый список список (PointF) центра;
- В каждой коробке с изображением может быть 3-5 обнаруженных ящиков. так как вы можете видеть, что в каждом из полей из изображения имеется несколько обнаруженных ящиков.
- Я отсортированы все detectedboxes в порядке возрастания, так что я знаю, который, возможно, будет number1, number2, и так далее ..
Вот некоторые из моего кода, который содержит сортировку коробки.
List<PointF> center = new List<PointF>();
List<PointF> centernew = new List<PointF>();
foreach (MCvBox2D box in lstRectangles)
{
// this code transfers every center-coordinates of detected boxes
// to a new list which is center
center.Add(new PointF(box.center.X, box.center.Y));
}
// and this one sorts the coordinates in ascending order.
centernew = center.OrderBy(p => p.Y).ThenBy(p => p.X).ToList();
Я сделал с сортировочной части, теперь моя проблема, так как там много обнаруженных коробок в каждой коробке с изображением, я хотел бы группаSortedList из центра -координирует, поэтому я мог бы устранить другие обнаруженные ящики и получить только один обнаруженный блок для каждого номера.
Я знаю, что это трудно понять, поэтому я объясню больше.
Скажем, мой SortedList из detectedboxes содержит первые пять центров-координаты, которые являются:
допустим этого являются центр-координаты каждого из detectedboxes из первой коробки изображения.
center[0] = [ 45.39, 47.6]
center[1] = [ 65.39, 47.6]
center[2] = [ 45.40, 47.10]
center[3] = [ 65.45, 47.25]
center[4] = [ 46.01, 47.50]
and the 2nd are:
center[5] = [ 200.39, 47.2]
center[6] = [ 45.39, 47.2]
center[7] = [ 45.39, 47.3]
center[8] = [ 45.39, 47.55]
- Моя цель состоит в том, чтобы организовать все отсортированные detectedboxes внутри списка, я должен быть в состоянии сгруппировать все центральные-координаты, которые имеют близкое значение с другим центром, в частности, их Y-координат.
Каким должен быть результат для вашего списка образцов с 9 элементами? – MarcinJuraszek
Моим выходом должно быть только 50 обнаруженных ящиков, что означает 50 центральных координат. Эти 1-я и 2-я группы координат являются координатами, которые являются схожими, но не точными, это центральные координаты ящиков, которые обнаруживают какой-то ящик. – julianconcepcion