107 lines
2.4 KiB
Python
Executable File
107 lines
2.4 KiB
Python
Executable File
#!/usr/bin/python3
|
|
|
|
import cv2
|
|
from gpiozero import LED, Button
|
|
from picamera2 import Picamera2
|
|
from time import sleep
|
|
import asyncio
|
|
import requests
|
|
from io import BytesIO
|
|
from PIL import Image
|
|
import shutil
|
|
from random import randint
|
|
import numpy as np
|
|
import sys
|
|
import pyautogui
|
|
|
|
red = LED(19)
|
|
blue = LED(26)
|
|
green = LED(13)
|
|
button = Button(5)
|
|
button2 = Button(2)
|
|
button3 = Button(3)
|
|
|
|
|
|
# Grab images as numpy arrays and leave everything else to OpenCV.
|
|
x = 512
|
|
y = 512
|
|
|
|
|
|
print(pyautogui.size())
|
|
|
|
x, y = pyautogui.size()
|
|
|
|
picam2 = Picamera2()
|
|
|
|
capture_config = picam2.create_preview_configuration(main={"size": (x, y),
|
|
"format": "RGB888"})
|
|
picam2.configure(capture_config)
|
|
picam2.start()
|
|
|
|
cv2.namedWindow("window", cv2.WND_PROP_FULLSCREEN)
|
|
# cv2.setWindowProperty("window",cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_FULLSCREEN)
|
|
while True:
|
|
|
|
# cv2.resizeWindow("window", x, y)
|
|
while True:
|
|
im = picam2.capture_array()
|
|
|
|
|
|
cv2.imshow("window", im)
|
|
if cv2.waitKey(40) & 0xFF == ord('q'):
|
|
sys.exit()
|
|
if button2.value:
|
|
break
|
|
|
|
while button.value:
|
|
pass
|
|
|
|
color_converted = cv2.cvtColor(im, cv2.COLOR_BGR2RGB)
|
|
img=Image.fromarray(color_converted)
|
|
|
|
byte_io = BytesIO()
|
|
img.save(byte_io, 'png')
|
|
byte_io.seek(0)
|
|
|
|
print("-------------------Generating Image----------------------")
|
|
r = requests.post(url='http://192.168.1.100:8000?text=into cyborg robot ',
|
|
files={
|
|
'my_file': (
|
|
'1.png',
|
|
byte_io,
|
|
'image/png'
|
|
),
|
|
},
|
|
stream=True
|
|
)
|
|
print(r.status_code)
|
|
|
|
if r.status_code == 200:
|
|
byte_io = BytesIO(r.content)
|
|
img = Image.open(byte_io)
|
|
|
|
# img.show()
|
|
height_orig = img.height
|
|
width_orig = img.width
|
|
aspect_ratio = width_orig / height_orig
|
|
width_new = x
|
|
height_new = int(width_new / aspect_ratio)
|
|
img = img.resize((width_new, height_new), 0)
|
|
|
|
numpy_image=np.array(img)
|
|
opencv_image=cv2.cvtColor(numpy_image, cv2.COLOR_RGB2BGR)
|
|
|
|
cv2.imshow("window", opencv_image)
|
|
print("---------------------------------Image Generated-----------------------------")
|
|
|
|
|
|
|
|
|
|
print("--------------------Sleeping-------------------------")
|
|
sleep(10)
|
|
print("--------------------Slept----------------------------")
|
|
|
|
|
|
|
|
|