이미지에 맞게 점을 치다

8159 단어 파이썬matplotlib

개요



로그에 기록된 터치 좌표를 그에 대응하는 화면 이미지에 오로지 플롯
···라고 하는 고행이 발생했으므로 그것을 자동화한다.

덧붙여 x축, y축이 묘화되어 화상의 사이즈도 바뀝니다.
Python - Python3 좌표를 이미지 위에 플롯 | teratail

plt.imshow를 사용하여 플롯 된 이미지를 확인할 수있었습니다.
...
에서 세이브하면(자), 픽셀수가 바뀌어 한층 더 불필요한 축까지 붙어, 그 주위에 여백이 나타납니다.

반대로 그 편이 편리하다는 희소? 사례.
나중에 알게 된 것입니다만, 아무래도 Pillow(PIL)가 없어도 할 수 있는 것 같습니다. 링크

코드


import matplotlib.pyplot as plt
from PIL import Image

# Figureとaxの準備 ... matplotlibの定型的な処理
fig = plt.figure(figsize=(8, 6))
fig.patch.set_facecolor('white') #<--これはなくてもよさそう。図全体の背景色を設定するが、imageで塗られる形になるため。
ax = fig.add_subplot(1, 1, 1)

# 画像だと(0,0)が左上に来て, y軸の正の方向が下を向くのでinvert_yaxis()
# ax.invert_yaxis()と思ったけど、いらないようす。

# xとyはログから入手したタッチ座標。ここでは、暫定的に左上、中央、右下を指定している
x = [0, 400, 200]
y = [0, 300, 150]

# タッチ座標をプロットする
ax.scatter(x, y, c='red', s=20)


# 背景に画面イメージを出す
im = Image.open("aaaa.png")
ax.imshow(im)

# プロット画像を保存する
plt.savefig("aaaa_plot.png")

원본 이미지 (aaaa.png) ... 페인트로 적절하게 만든 400x300 이미지


플롯 후 (aaaa_plot.png)


코드 2 - Pillow 없음


import matplotlib.pyplot as plt
import matplotlib.cbook as cbook
import pathlib

# 画像を読み込んでおく
f = cbook.get_sample_data(pathlib.Path("aaaa.png").absolute())
im = plt.imread(f)

# Figureとaxの準備 ... matplotlibの定型的な処理
fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(1, 1, 1)

# 理由はわからないが、ax.invert_yaxis()を呼ばなくてもy軸は下を向く

# xとyはログから入手したタッチ座標。ここでは、暫定的に左上、中央、右下を指定している
x = [0, 400, 200]
y = [0, 300, 150]

# タッチ座標をプロットする
ax.scatter(x, y, c='red', s=20)

# 背景に画面イメージを出す
ax.imshow(im)

# プロット画像を保存する
plt.savefig("aaaa_plot2.png")

비고



이 고행, 기시감이 있구나・・・라고 생각하면↓도 가까운 녀석이었다.
정규 표현식과 일치하는 부분을 Excel로 내보내기 + 플롯 - Qiita
이 때는 화상에 맞출 필요가 없었다+다른 사람이 원시 데이터를 보는 편의상, Excel로 하고 있었다.

참고



matplotlib - imshow로 이미지와 배열을 표시하는 방법 - Pynote
matplotlib의 엄청난 정리 - Qiita
python - matplotlib : 이미지 imshow 좌표를 플롯과 호환되지 않음 - stackoverrun
AxesDivider — Matplotlib 2.0.2 documentation

좋은 웹페이지 즐겨찾기