I’m trying to display jpegs full screen on a second monitor on a Raspberry Pi 5 using opencv in Python.

```
import cv2
from pathlib import Path
from screeninfo import get_monitors, Monitor

def display_jpeg_fullscreen(image_path: Path, monitor: Monitor):
 """ Display an image full screen. """
 image = cv2.imread(str(image_path))
 if image is None:
 raise Exception(f"Error: Could not load image from '{image_path}'")

 image = cv2.resize(image, (monitor.width, monitor.height))

 # Create a fullscreen window
 window_name = monitor.name
 cv2.namedWindow(window_name, cv2.WINDOW_FULLSCREEN)
 cv2.moveWindow(window_name, monitor.x, 0) # move to appropriate monitor
 cv2.setWindowProperty(window_name, cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)

 # Show the image
 cv2.imshow(window_name, image)
 cv2.waitKey(2000)


def main():
 all_monitors = get_monitors()
 display_jpeg_fullscreen(Path("bird.jpg"), all_monitors[1])

if __name__ == "__main__":
 main()

```
This ought to display the image on the second monitor and on MS Windows it does. However on a Raspberry Pi 5, which I think uses Wayland, it is random whether it appears on monitor 1 or monitor 2.

I’ve tried with moveWindow after imshow too.

Any idea what I am doing wrong?

I do get a warning that Qt platform plugin 'wayland' cannot be found in site-packages/cv2/qt/plugins. However if I set QT_QPA_PLATFORM=xcb the behaviour is the same.