我的目標如下:給定一個二維數組和一個可以放置在數組頂部的多邊形,我想要拉出多邊形內的值(包含的邊界)並求和這些值。如何從位於數組頂部的多邊形內的NumPy 2-D數組中提取值?
假設我有一個2-d陣列是這樣的:
1 6 8 4 2 3
5 4 1 3 7 9
1 0 2 3 4 8
6 7 0 5 7 4
0 1 2 5 4 2
並假設我有以下頂點的多邊形:
(1, 2)
(2, 3)
(3, 3)
(4, 2)
(4, 1)
(3, 1)
(2, 1)
(1, 2)
鋪設在陣列的頂部的多邊形會導致在下面:
_ _ _ _ _ _
_ _ 1 _ _ _
_ 0 2 3 _ _
_ 7 0 5 _ _
_ 1 2 _ _ _
最後,我想總結這些值。所以最終的輸出將是21.
什麼是最有效的方式來做到這一點?我已經看到matplotlib.path
和Shapely的引用,但是我沒有找到任何能夠滿足我需要的東西的地方,除非我只是錯過了某些東西(這當然是可行的)。看起來這個功能應該被構建到NumPy中,但是如果是的話,我還沒有遇到過。
爲什麼我需要這個:我有一個代表世界人口的ASCII網格,我有政治邊界。我想覆蓋人口網格上的政治邊界,以確定該地點的總人口數量。
我會建議將numpy數組轉換成圖像,然後使用圖像處理工具(OpenCV?) – DyZ