Manual
do
Maker
.
com
Tive duas ideias essa noite, quando deitei para dormir (parece a melhor hora para o cérebro lutar contra o descanso). Para executar essas ideias que, acredito fortemente, será uma diversão e tanto, precisamos primeiramente ter o conceito dessa etapa, que é tirar um screenshot com OpenCV.
A primeira ideia é relacionada à proteção de crianças no computador, a segunda é uma brincadeira, mas não revelarei os detalhes agora.
Comecemos criando um ambiente virtual para desenvolvimento. O Virtualenv é uma maneira de manter o sistema integro. Se depois de desenvolver seus testes quiser excluir o conteúdo para não deixar resquícios no sistema, a melhor opção é utilizar Virtualenv e posteriormente excluir o diretório.
Basicamente, acessamos com activate e desabilitamos com deactivate. O processo de instalação e criação do ambiente virtual está descrito nesse outro artigo.
Alguns pacotes precisam ser instalados no sistema, mas só alguns. O restante será instalado no virtualenv e em seguida poderemos tirar screenshot com OpenCV usando algumas poucas linhas de código.
Comece instalando os pacotes de sistema:
sudo apt-get install scrot
sudo apt-get install python-tk python-dev
sudo apt-get install python3-tk python3-dev
E em seguida, acesse ou crie o virtualenv.
virtualenv teste
source teste/bin/activate
Agora a última etapa antes do código para tirar screenshot com OpenCV.
Com o comando anterior, deve aparecer (teste) do lado esquerdo da PS1 do terminal do Linux. Após isso, instalamos os demais pacotes usando o programa pip que está instalado no virtualenv.
cd teste
pip install pillow imutils
pip install python3_xlib python-xlib
pip install pyautogui
pip install numpy
pip install cv2-tools cv2-utils
pip install opencv-utils opencv-python
Agora vamos ao código para tirar screenshot com OpenCV. É realmente básico e sem muito propósito (se usado sem outra função), mas nos próximos artigos relacionados deve começar a ficar mais claro o objetivo.
import numpy as np
import pyautogui
import imutils
import cv2
image = pyautogui.screenshot()
image = cv2.cvtColor(np.array(image), cv2.COLOR_RGB2BGR)
cv2.imwrite("screenshot.png", image)
Após, basta executar o script com python shot.py (shot.py é o nome que eu dei ao script). Será criada uma imagem chamada screenshot.png. Para abri-la, digite no console xdg-open screenshot.png.
Esse processo deve ir muito bem com uma Raspberry. Se precisar de uma, dê uma conferida na Raspberry Pi 3B na CurtoCircuito ou a Raspberry Pi 3B+ na Saravati, dependendo do que quer. Se pretende dar um up, então pode ir para a Raspberry Pi 4, do nosso parceiro MASUGUX.
Simples e rápido, tirando shot dos dois displays; com isso, reduzimos o conteúdo para o próximo artigo relacionado.
Espero que acompanhe!
Revisão: Ricardo Amaral de Andrade
Inscreva-se no nosso canal Manual do Maker no YouTube.
Também estamos no Instagram.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.