MCPcopy Index your code
hub / github.com/tensorpack/tensorpack / interactive_imshow

Function interactive_imshow

tensorpack/utils/viz.py:25–66  ·  view source on GitHub ↗

Args: img (np.ndarray): an image (expect BGR) to show. lclick_cb, rclick_cb: a callback ``func(img, x, y)`` for left/right click event. kwargs: can be {key_cb_a: callback_img, key_cb_b: callback_img}, to specify a callback ``func(img)`` for keypress. Som

(img, lclick_cb=None, rclick_cb=None, **kwargs)

Source from the content-addressed store, hash-verified

23
24
25def interactive_imshow(img, lclick_cb=None, rclick_cb=None, **kwargs):
26 """
27 Args:
28 img (np.ndarray): an image (expect BGR) to show.
29 lclick_cb, rclick_cb: a callback ``func(img, x, y)`` for left/right click event.
30 kwargs: can be {key_cb_a: callback_img, key_cb_b: callback_img}, to
31 specify a callback ``func(img)`` for keypress.
32
33 Some existing keypress event handler:
34
35 * q: destroy the current window
36 * x: execute ``sys.exit()``
37 * s: save image to "out.png"
38 """
39 name = 'tensorpack_viz_window'
40 cv2.imshow(name, img)
41
42 def mouse_cb(event, x, y, *args):
43 if event == cv2.EVENT_LBUTTONUP and lclick_cb is not None:
44 lclick_cb(img, x, y)
45 elif event == cv2.EVENT_RBUTTONUP and rclick_cb is not None:
46 rclick_cb(img, x, y)
47 cv2.setMouseCallback(name, mouse_cb)
48 key = cv2.waitKey(-1)
49 while key >= 128:
50 key = cv2.waitKey(-1)
51 key = chr(key & 0xff)
52 cb_name = 'key_cb_' + key
53 if cb_name in kwargs:
54 kwargs[cb_name](img)
55 elif key == 'q':
56 cv2.destroyWindow(name)
57 elif key == 'x':
58 sys.exit()
59 elif key == 's':
60 cv2.imwrite('out.png', img)
61 elif key in ['+', '=']:
62 img = cv2.resize(img, None, fx=1.3, fy=1.3, interpolation=cv2.INTER_CUBIC)
63 interactive_imshow(img, lclick_cb, rclick_cb, **kwargs)
64 elif key == '-':
65 img = cv2.resize(img, None, fx=0.7, fy=0.7, interpolation=cv2.INTER_CUBIC)
66 interactive_imshow(img, lclick_cb, rclick_cb, **kwargs)
67
68
69def _preprocess_patch_list(plist):

Callers 4

sampleFunction · 0.90
stack_patchesFunction · 0.85
gen_stack_patchesFunction · 0.85
viz.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected