pythonで、ある画像を読み込み、その画像を表示して、
カーソルでその画像の特定範囲を指定し、その縦横幅とかを変数に入れたり返す等する方法は、
あるんでしょうか?どのようにするんでしょうか?
Matplotlibを使いたいです、最近よく使うし、構造が分かりやすいため。
opencvは構造が分かりにくい、、複雑でブラックボックス化しているため、避けたい。
Matplotlibで画像を表示し、あとCanvasとかも使うんですかね??範囲指定には。
guiというものはよく分かりませんが、cvのように、中身が複雑すぎてブラックボックス化しているものは使わず、中の仕組みが分かりやすいものを使っていきたいのです。
matplotlibで、マウス位置とクリック情報が取得できそうです。
https://qiita.com/HajimeKawahara/items/abc24fa2216009523656
との事で、matplotで画像を表示させた後クリック情報を取得する事ができればできるみたいです、
どうやるのかよく分かりませんが・・・。
この画像に対し、赤色の、左上にある四角形のサイズを取得する・・・ことは、問題なくできますかね?
以下のコードを提示頂いたのですが、まだ試していません。
python
1from PIL import Image 2import matplotlib.pyplot as plt 3import numpy as np 4 5im=Image.open('tmp.jpg') 6 7global start_x; 8global start_y; 9 10 11def onclick(event): 12 global start_x; 13 global start_y; 14 print('click' , event.x, event.y) 15 start_x = int(event.x) 16 start_y = int(event.y) 17 18 19def onrelease(event): 20 global start_x; 21 global start_y; 22 print('release' , event.x, event.y ) 23 print('size x=' , event.x - start_x , 'y=' , start_y -event.y ) 24 25 26fig = plt.figure() 27 28im_list=np.asarray(im) 29plt.imshow(im_list) 30 31fig.canvas.mpl_connect('button_press_event', onclick) 32fig.canvas.mpl_connect('button_release_event', onrelease) 33 34plt.show()