title: cv2.imshow() starts without poping up a window when called in threading
body: <p>cv2.imshow() do not pop up the window when called in the threading. An icon of python3 appears in the docker, but no window, no plot. Besides, I need the function of half-duplex communication, thus I cannot just remove threading. How can I correctly show the picture inside threading? Any response is appreciated.</p>
  
  <p>Background: MacOS Catalina, python==3.5, opencv==3.4.2</p>
  
  <pre><code>import cv2
  import threading
  
  def run():
      # start the camera
      video_reader = cv2.VideoCapture(0)
      while True:
          # collect image
          ret_val, image = video_reader.read()
          cv2.imshow('image', image)
          if cv2.waitKey(1) == 27:
              break  # esc to quit
  
  t = threading.Thread(target=run, name="run")
  t.start()
  </code></pre>
  
  <p>Some Warning messages that may help:</p>
  
  <pre><code>python3[86286:1964642] WARNING: NSWindow drag regions should only be invalidated on the Main Thread! This will throw an exception in the future. Called from (
      0   AppKit                              0x00007fff2fc177f0 -[NSWindow(NSWindow_Theme) _postWindowNeedsToResetDragMarginsUnlessPostingDisabled] + 371
      1   AppKit                              0x00007fff2fc14ce1 -[NSWindow _initContent:styleMask:backing:defer:contentView:] + 1416
      2   AppKit                              0x00007fff2fc14753 -[NSWindow initWithContentRect:styleMask:backing:defer:] + 42
      3   AppKit                              0x00007fff2fea8368 -[NSWindow initWithContentRect:styleMask:backing:defer:screen:] + 52
      4   libopencv_highgui.3.4.2.dylib       0x000000010327bee7 cvNamedWindow + 727
      5   libopencv_highgui.3.4.2.dylib       0x000000010327b7a3 cvShowImage + 195
      6   libopencv_highgui.3.4.2.dylib       0x000000010327860d _ZN2cv6imshowERKNS_6StringERKNS_11_InputArrayE + 477
      7   cv2.cpython-35m-darwin.so           0x00000001014f8393 _ZL18pyopencv_cv_imshowP7_objectS0_S0_ + 387
      8   python3                             0x0000000100ca759f PyCFunction_Call + 127
      9   python3                             0x0000000100d6eec7 PyEval_EvalFrameEx + 18583
      10  python3                             0x0000000100d68faf _PyEval_EvalCodeWithName + 335
      11  python3                             0x0000000100c746aa function_call + 106
      12  python3                             0x0000000100c30b35 PyObject_Call + 69
      13  python3                             0x0000000100d6fc9b PyEval_EvalFrameEx + 22123
      14  python3                             0x0000000100d6efb8 PyEval_EvalFrameEx + 18824
      15  python3                             0x0000000100d6efb8 PyEval_EvalFrameEx + 18824
      16  python3                             0x0000000100d68faf _PyEval_EvalCodeWithName + 335
      17  python3                             0x0000000100c746aa function_call + 106
      18  python3                             0x0000000100c30b35 PyObject_Call + 69
      19  python3                             0x0000000100c53694 method_call + 148
      20  python3                             0x0000000100c30b35 PyObject_Call + 69
      21  python3                             0x0000000100d77bf4 PyEval_CallObjectWithKeywords + 68
      22  python3                             0x0000000100de472a t_bootstrap + 122
      23  libsystem_pthread.dylib             0x00007fff69e8cd76 _pthread_start + 125
      24  libsystem_pthread.dylib             0x00007fff69e895d7 thread_start + 15
  )
  2019-10-14 15:20:27.485 python3[86286:1964642] WARNING: nextEventMatchingMask should only be called from the Main Thread! This will throw an exception in the future.
  </code></pre>