Source code for ibeis.viz.interact.interact_bbox

# -*- coding: utf-8 -*-
from __future__ import absolute_import, division, print_function
from plottool import interact_helpers as ih
from ibeis import viz
from plottool import draw_func2 as df2
from plottool import fig_presenter
import utool
(print, print_, printDBG, rrr, profile) = utool.inject(__name__,
                                                       '[interact_bbox]', DEBUG=False)


#================
[docs]def iselect_bbox(ibs, gid, fnum=1, figtitle='Image View - Select ANNOTATION (click two points)', **kwargs): #from matplotlib.backend_bases import mplDeprecation print('[*interact] select_bbox(gid=%r, fnum=%r)' % (gid, fnum)) print('[*interact] Define a Rectanglular ANNOTATION by clicking two points.') # Show the image fig = ih.begin_interaction('select_bbox', fnum) fig_presenter.bring_to_front(fig) viz.show_image(ibs, gid, **kwargs) try: viz.draw() fig = df2.gcf() pts = fig.ginput(2) print('[*guitools] ginput(2) = %r' % (pts,)) [(x1, y1), (x2, y2)] = pts xm = min(x1, x2) xM = max(x1, x2) ym = min(y1, y2) yM = max(y1, y2) bbox = tuple(map(int, map(round, (xm, ym, xM - xm, yM - ym)))) # Reconnect the old button press events print('[*interact] bbox = %r ' % (bbox,)) return bbox except Exception as ex: print('<!!!>') print('[*interact] Caught: %s %s' % (type(ex), ex)) print('[*interact] ANNOTATION selection Failed:') print('</!!!>') raise