2015-09-08 30 views
0

我試圖構建一個程序來自動從圖像中提取數據。我幾乎擁有它,但掛在從像素座標定義所需的軸。例如,如果該圖像被用於:PIL中的像素軸轉換

enter image description here

我能找到的數據點,但該點是參照圖像大小,看起來像這樣: enter image description here

什麼是最好的方式做這個轉換?

+0

其實,沒有必要的代碼。這只是將座標從一個系統轉換爲另一個系統的小數學問題。 –

+0

該代碼發佈時間相當長。 @MichielOvertoom的回答正是我所需要的。 – user3427374

回答

0

這可以用一些數學來完成。你必須座標從像素轉換爲繪製值,就像這樣:

  • 壁球域到0 ... 1倍
  • 鏡(僅適用於y軸,由於像素Y座標從運行從上到下和劇情從底部座標到頂部)
  • 展開域到範圍上的情節

例如,把你的數據點中的一個,其具有像素座標(80,150) ,從圖中我可以看出它在圖上的座標是(24,8.75)。

讓我們做第一y座標,是具有從150至8.75映射:

  • 除以圖像(200)的y範圍:150/200 = 0.75
  • 鏡: 1 - 0.75 = 0.25
  • 擴大:0.25 * 35(情節的y範圍)= 8.75

然後,x座標,沒有必要鏡像:

  • 三百分之八十○= 0.2666
  • 0.2666×90 = 24

我不知道,如果軸是圖像的一部分,如果是這樣,你可能還需要應用一些偏移賬戶爲他們。

+0

當然!回到基礎知識......謝謝! – user3427374