Last active
May 7, 2024 03:09
-
-
Save ronekko/dc3747211543165108b11073f929b85e to your computer and use it in GitHub Desktop.
Python example to show an image in full screen by opencv
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- 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() |
Thanks a lot, works for me and I can project images with Raspberry Pi. Best regards
Thanks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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()`