Использование увеличенного изображения из imshow () в Python - PullRequest
0 голосов
/ 27 апреля 2018

Я работаю над графическим интерфейсом Python 3.5, дело в том, что я показываю изображение на холсте и хочу использовать инструменты matplotlib для увеличения изображения с помощью кнопок zoom to rectangle или pan/zoom, а затем область для увеличения изображения сохраните его в переменной, я могу реализовать кнопку для извлечения области, используя ginput(), но потерял из виду исходное изображение. Теперь я хочу попробовать использовать инструменты matplotlib.

Как я могу это сделать? Спасибо

РЕДАКТИРОВАТЬ: Вот как я кодирую это:

#On _init_ function on class I declare the figure like this
def __init__(self):
    self.raiz = tk.Tk()
    self.raiz.title("SOFTWARE KI-67")
    self.raiz.geometry('1000x800')

    self.figura=plt.figure()

    self.canvas = FigureCanvasTkAgg(self.figura, self.cuadro_plot)
    self.canvas.get_tk_widget().pack(side=tk.TOP, expand=tk.TRUE, fill=tk.BOTH)
    self.canvas.draw()
    self.toolbar = NavigationToolbar2TkAgg(self.canvas, self.cuadro_plot)
    self.canvas._tkcanvas.pack(side=tk.BOTTOM, fill=tk.BOTH, expand=True)


#This is the cutting function
def recortar(self):
    if self.brecortar.config('relief')[-1] == 'sunken':
        self.brecortar["state"] = 'normal'
    else:
        self.brecortar.config(relief="sunken")
        self.brecortar["state"] = 'disabled'
        pts = np.asarray(plt.ginput(2, show_clicks=True))
        pts = np.sort(pts, axis=0)
        pts = (np.floor(pts))
        print(pts)

        minX = int(min(pts[0][0], pts[1][0]))
        maxX = int(max(pts[0][0], pts[1][0]))
        minY = int(min(pts[0][1], pts[1][1]))
        maxY = int(max(pts[0][1], pts[1][1]))

        print(minX, maxX, minY, maxY)
        img2 = self.img.copy()
        img2 = img2[minY:maxY, minX:maxX]

        self.img = img2
        self.plotear(img2)

        self.brecortar.config(relief="raised")
        self.brecortar["state"] = 'normal'

Я прочитал комментарий Эрнеста, но как я могу реализовать

ax.callbacks.connect('xlim_changed', on_xlims_change)
ax.callbacks.connect('ylim_changed', on_ylims_change)

??

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