Muchas gracias FJSevilla por la aclaración, me ha servido mucho. He probado a mantener la referencia y ya ha funcionado.
También parece que funciona si en vez de introducir la imagen mediante canvas.create_image
la introduzco mediante etiquetas, así:
self.im = ImageTk.PhotoImage(capture)tk.Label(self,image = self.im).place(x=180, y=20, relwidth=1, relheight=1)