有關於我在某處看到的線路交叉點並試圖解決的問題。用於查找直線交點的算法
有一個64x64的8位像素網格,它有一束1像素寬的不同顏色的垂直和水平線。所有平行線之間至少有一個空格。問題是要找出每組彩色線條所形成的線路交叉點的數量(例如,所有綠色線路交叉點都計入一個總和)。並找出哪一組線路交叉數量最少。此外,顏色的所有垂直線都是相同的大小,並且同一顏色的所有水平線都是相同的大小。
我有一些想法,但他們都似乎相當低效。這將涉及通過網格中的每個像素,如果遇到顏色確定它是垂直線還是水平線,然後沿着線的方向行進,同時檢查相鄰兩側的不同顏色。
我想決定是否首先計算每種顏色的水平和垂直線的長度會加快這個過程。你們對於如何做到這一點有什麼好的想法嗎?
這裏有兩個例子。請注意,平行線總是在它們之間留有空間。
不知道我知道,但在我看來,對於每一種顏色,你想要的水平線乘以垂直線的數目。然後對其進行排序以查看哪種顏色具有最大值?那麼如何通過檢查圖像像素來統計每種顏色的線條數量/類型? –
我想要的是一條線以任何其他顏色穿過的次數。你爲每一行做這個,然後對每種顏色的所有交叉點進行求和。另外,由於線路可能在下方或者不在下方,因此線路不明確,如果線路在T(或橫向T)交叉點相遇,則不計算該線路。 例如,第一張照片中綠色的交叉總數爲7. – ballaw
啊,好的。這是值得在這個問題,謝謝。 –