cv2.imshow inside a seperate process? [closed]

asked Sep 3 '16

bradfield gravatar image

Consider the following illustration:

import cv2
from multiprocessing import Process

def f(x):
    cv2.imshow('window',x)
    pass

if __name__=='__main__':
    cv2.namedWindow('window')
    img=cv2.imread("name.jpg",0)
    p=Process(target=f,args=(img,))
    p.start()
   ...

The named Window does open, but the image does not show up, unless I execute the imshow in the main process. Why is that?

Preview: (hide)

Closed for the following reason question is not relevant or outdated by sturkmen
close date 2020-10-04 13:02:30.641860

Comments

I don't know if python works like c++, but you probably need to put a cv2.waitKey() after the imshow.

Tetragramm gravatar imageTetragramm (Sep 3 '16)edit

namedWindow just creates a window. imshow puts the image in it

Nuser gravatar imageNuser (Dec 26 '18)edit

it is a known bug

sturkmen gravatar imagesturkmen (Oct 4 '0)edit