0
我試圖通過單擊它從圖像中交互獲取點。爲此,我使用Python2.7提供的matplotlib提供的pyplot包。「越界」 - 使用PyPlot和ginput時出現錯誤
我這樣做以下列方式:
fig = plt.figure()
self.ax = fig.add_subplot(111)
self.ax.imshow(self.image, cmap='gray')
self.ax.axis('image')
self.original_points = plt.ginput(self.clicks, mouse_stop = 3, mouse_pop = 2)
self.image[self.original_points[0]]
但是給了我以下錯誤:
IndexError: index 382 is out of bounds for axis 0 with size 362
好像x和y座標是顛倒的。到底是怎麼回事?
謝謝。我什麼時候需要扭轉座標?僅當我使用它們來索引數組時,它纔是必需的嗎?他們被扭轉的原因是什麼? – PetaPetaPeta
Numpy數組的排列順序爲(row,column,...),因爲這就是你通常在數學中索引矩陣的方法。由於'ginput'給出了點擊圖的一個點,你通常認爲這是一個x-y而不是y-x,那麼我想給出點(x,y)是大多數人所期望的。您顯然必須重新排列座標,使其對您的數據有意義:) –
好吧,這是有道理的。我正在做一些計算機視覺,這導致了一些時髦的結果! 所以這是由於圖像的軸被視爲不同於數組的方式。 'ginput'返回(x,y)。對於繪圖:(x,y)。索引:(y,x) – PetaPetaPeta