2017-09-19 4 views
-1

저는 처음으로 파이썬을 시도하고 있습니다. 내 마지막 게임에는 x 축 거리 (미터)와 y 축 (깊이) (500x500m) 격자가있는 이미지가 있습니다. 두 가지 방법으로 격자를 이미지에 플롯 할 수있었습니다. 두 방법 모두 격자 간격에 픽셀 크기를 사용합니다. 정확한 픽셀 간격 비율은 정확한 격자 간격을 얻는 데 사용됩니다.파이썬에서 이미지에 축을 추가하거나 변경하는 방법은 무엇입니까?

첫 번째 시도 (matplotlib 사용)에서 잘못된 축을 사용하여 정확한 그리드 간격을 만들 수있었습니다 (축에 픽셀이 반영되어 격자 간격을 변경하지 않고 축 값을 변경하는 방법을 알 수 없음). (PIL 사용)

두 번째 코드는 격자로 이미지를 생산하고 더 축이 전혀, 단지 내 문제에 대한 대답은 PIL 또는하기 matplotlib 문서 내부에 묻혀

임 확실 그리드,하지만 난 새로운 오전 파이썬과 아직도 규칙을 배우고 있고 심지어 라이브러리가 작동하는 방법도

이미지 주위에 축을 그리는 방법이 있습니까? 또는 matplotlib을 사용하여 픽셀과 관련이없는 사용자 정의 크기를 만드는 것이 더 쉬울까요?

나는 이것이 매우 모호한 질문이지만, 누군가가 올바른 방향으로 나를 가리킬 수 있는지 알고있다.

감사합니다.

+0

하나의 방법은 모든 사용 사례 및 최종 목표에 따라 작동한다. 올바른 축을 설정하려면 matplotlib에 대한 설명서를 확인하고 PIL을 사용하여 원할 때마다 축을 사용하여 그리드를 수동으로 그립니다. –

답변

0

축을 원하면 matplotlib imshow을 사용하십시오. 픽셀 대 거리 비율이있는 경우 (예 : "1 픽셀 = 100 미터"로 설정하면 이미지의 경우 extent을 설정할 수 있습니다.

import matplotlib.pyplot as plt 
import numpy as np 

image = np.random.rand(5,5) 

#1 pixel = 100 meters 
r = 1./100. 

fig, ax = plt.subplots() 
ax.imshow(image, extent=(0,image.shape[1]/r,0,image.shape[0]/r)) 
ax.set_xlabel("distance [m]") 
ax.set_ylabel("distance [m]") 

plt.show() 

enter image description here

+0

잘 쓰지 않은 질문에 대한 답을 보내 주셔서 감사합니다. 나는 커뮤니티에 익숙하지 않고 일반적으로 코딩을하고있다. (다시 나쁜 습관으로 인해 유감스럽게 생각한다.)이 대답은 나를 올바른 길로 인도 해 주었다. 도와 줘서 고마워! – whonjas