I believe I am witnessing a memory leak in the following Python code that calls OpenCV functions. Can you reproduce this? Why does this happen? How can I work around it or fix it? My environment: macOS (10.12 and 10.13) Python 3.8.10 OpenCV 3.4.18 NumPy 1.24.4 I've now also tested it on another machine in Python 3.9.1 with OpenCV 4.10.0 and NumPy 2.02 and experience the same behavior. I believe it's linked to cv2.imshow. With each loop iteration (i.e. every time the image updates) the memory usage of Python increases by an amount relative to the size of the image. Adding small = cv2.resize(img,(640,360)) and changing the imshow line to cv2.imshow('Image',small) makes the RAM increase by a much smaller amount. By inserting a continue statement above the imshow call, and thereby skipping imshow altogether, makes the RAM stay more or less unchanged throughout the loop. So, I guess this isolates the problem to cv2.imshow. import cv2, numpy as np flag = False while True: img = np.zeros((2160,3840,3),np.uint8) if flag: img = cv2.circle(img, (1920,1080),128,(255,255,255),-1) flag = not flag cv2.imshow('Image',img) k = cv2.waitKey() cv2.destroyAllWindows() if k == 27: break Continue reading...