Блокнот Jupyter: регистрируйте щелчки (перемещения) позиции мыши на отображаемом изображении (jpg / png) - PullRequest
0 голосов
/ 08 сентября 2018

Используя Python 3.6+, ноутбуки Jupyter и matplotlib, я хочу чтобы узнать, как получить положение x, y изображения с помощью наведя на него мышку и / или щелкнув по позиции

Я использую любое изображение, например, png размером 966 x 525 пикселей.

%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib.image as mpimg

fig = plt.figure(figsize=(20,30))

img=mpimg.imread('ausgabe.png')
imgplot = plt.imshow(img)
plt.show();

Многие предлагаемые решения для стекового потока включают подключение событие в matplotlib, например

fig.canvas.mpl_connect('button_press_event', onclick)

(см. Сохранить координаты события щелчка мыши с помощью matplotlib )

Но в Юпитере это просто не реагирует. Вместо этого нажатие на изображение иногда увеличивает его.

Какой хороший способ отобразить png в Jupyter, чтобы я мог собрать (= распечатать) позиции щелчка - или перезапустить ячейку с собранной информацией?

1 Ответ

0 голосов
/ 25 мая 2019

вы можете использовать встроенный бэкэнд Tk, и вы можете получить позицию щелчка мышью таким образом. например

%matplotlib tk
import matplotlib.pyplot as plt
import matplotlib.image as mpimg

fig = plt.figure(figsize=(20,30))

img=mpimg.imread('ausgabe.png')

def onclick(event):
    ix, iy = event.xdata, event.ydata
    print(ix, iy)

cid = fig.canvas.mpl_connect('button_press_event', onclick)

imgplot = plt.imshow(img)
plt.show()

Появится отдельное окно tk, и когда вы нажмете, в блокноте будет напечатана позиция x, y.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...