我有我的論文「多項選擇檢查檢查器」,我在處理我的問題時遇到了一個大問題。我有一個畫面圖像(位圖專)在這兒,所以你可以看到:如何在座標附近組羣
這與detectedbox的形象,我將描述這一點:
- 這是一個試卷,1-50項。每個號碼都有一個相應的方框(數字的右側,作爲答案的容器)
- 這張圖片只是一個樣本,檢測到的方框數量可能會有所不同。我的近似值是它包含150-200個檢測框。
- 每個detectedboxes存儲在列表(MCvBOX2D)其保持detectedboxes'的大小,中心等
- 我轉移在一個新的列表表(的PointF)中心的那些中心的座標;
- 從圖像的每個框中,可能有3-5個檢測框。正如您所看到的,圖像中每個框中有多個檢測框。
- 我按升序排序的所有detectedboxes,所以我想知道,這將可能是數字1,數字等..
下面是我的一些代碼,其中包含框的排序。
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的 - 協調,所以我可以消除其他檢測到的盒子,並且每個數字只能得到一個檢測盒子。
我知道這很難理解,所以我會解釋更多。
比方說,我排序列表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箇中心座標。第一組和第二組座標是類似但不精確的座標,它們是檢測到某個方框的方框的中心座標。 – julianconcepcion