Skip to content

Instantly share code, notes, and snippets.

@ronekko
Last active May 7, 2024 03:09
Show Gist options
  • Select an option

  • Save ronekko/dc3747211543165108b11073f929b85e to your computer and use it in GitHub Desktop.

Select an option

Save ronekko/dc3747211543165108b11073f929b85e to your computer and use it in GitHub Desktop.
Python example to show an image in full screen by opencv
# -*- coding: utf-8 -*-
"""
Created on Thu Jun 22 16:44:27 2017
@author: sakurai
"""
import numpy as np
import cv2
import screeninfo
if __name__ == '__main__':
screen_id = 2
is_color = False
# get the size of the screen
screen = screeninfo.get_monitors()[screen_id]
width, height = screen.width, screen.height
# create image
if is_color:
image = np.ones((height, width, 3), dtype=np.float32)
image[:10, :10] = 0 # black at top-left corner
image[height - 10:, :10] = [1, 0, 0] # blue at bottom-left
image[:10, width - 10:] = [0, 1, 0] # green at top-right
image[height - 10:, width - 10:] = [0, 0, 1] # red at bottom-right
else:
image = np.ones((height, width), dtype=np.float32)
image[0, 0] = 0 # top-left corner
image[height - 2, 0] = 0 # bottom-left
image[0, width - 2] = 0 # top-right
image[height - 2, width - 2] = 0 # bottom-right
window_name = 'projector'
cv2.namedWindow(window_name, cv2.WINDOW_NORMAL)
cv2.moveWindow(window_name, screen.x - 1, screen.y - 1)
cv2.setWindowProperty(window_name, cv2.WND_PROP_FULLSCREEN,
cv2.WINDOW_FULLSCREEN)
cv2.imshow(window_name, image)
cv2.waitKey()
cv2.destroyAllWindows()
@muzaffar-hussain

Copy link
Copy Markdown

The screen freezes everytime when I use it.

@RexBarker

Copy link
Copy Markdown

pip install screeninfo doesn't work for macOS by default. It requires a gcc compiler

@Farrukhraz

Copy link
Copy Markdown

Thanx

@MrChaos1234

Copy link
Copy Markdown

Thank you! Working good for me!
thats exactly what i needed and i couldnt find it anywhere!

@mrjones-plip

Copy link
Copy Markdown

Found this and am really happy now! Thanks for sharing.

ghost commented Apr 1, 2022

Copy link
Copy Markdown

Thanks so much been looking around for this

@jackjaquejack

jackjaquejack commented Apr 8, 2022

Copy link
Copy Markdown

I had to make a small change to work for me on my RPi

`
from screeninfo import get_monitors
import numpy as np
import cv2

screen = get_monitors()[0]
print(screen)
width, height = screen.width, screen.height

is_color = True

if is_color:
image = np.ones((height, width, 3), dtype=np.float32)
image[:10, :10] = 0 # black at top-left corner
image[height - 10:, :10] = [1, 0, 0] # blue at bottom-left
image[:10, width - 10:] = [0, 1, 0] # green at top-right
image[height - 10:, width - 10:] = [0, 0, 1] # red at bottom-right
else:
image = np.ones((height, width), dtype=np.float32)
image[0, 0] = 0 # top-left corner
image[height - 2, 0] = 0 # bottom-left
image[0, width - 2] = 0 # top-right
image[height - 2, width - 2] = 0 # bottom-right

window_name = 'projector'
cv2.namedWindow(window_name, cv2.WND_PROP_FULLSCREEN)
cv2.moveWindow(window_name, screen.x - 1, screen.y - 1)
cv2.setWindowProperty(window_name, cv2.WND_PROP_FULLSCREEN,
cv2.WINDOW_FULLSCREEN)
cv2.imshow(window_name, image)
cv2.waitKey()
cv2.destroyAllWindows()`

@obedrios

obedrios commented May 2, 2022

Copy link
Copy Markdown

Thanks a lot, works for me and I can project images with Raspberry Pi. Best regards

@enosjebanadar

Copy link
Copy Markdown

Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment