Artigos

Controlo da Camera com Python

Neste tutorial, vamos ver como controlar o módulo de Camera (PiCam ou PiNoIR) do Raspberry Pi com Python, para isso vamos usar uma livraria nativa de Python chamada Python Picamera, criada por Dave Jones.

 

Instalação

Antes de mais nada, vamos ligar o módulo da Camera da Porta CSI do Raspberry Pi estando desligado da rede elétrica. A seguir iniciamos o Raspberry Pi com o nosso utilizador e senha. Abrimos uma janela do terminal e escrevemos:

 

sudo raspi-config

 

No menu, selecionamos a opção ‘Enable Camera‘ e logo colocamos a ‘Enable‘ e a ‘Finish‘ para reiniciar o Raspberry Pi. Uma vez instalado e ativado o módulo da Camera, vamos instalar a livraria de Dave Jones. Em primeiro lugar vamos atualizar os repositórios e o software do Raspberry Pi escrevendo estes comandos no terminal:

 

sudo apt-get update
sudo apt-get upgrade

 

A seguir instalamos a livraria, escrevendo este comando no terminal:

 

sudo apt-get install python-picamera

Uso da livraria Python-Picamera

Vista anterior

Esta caraterística permite-nos visualizar em tempo real a imagem captada pelo módulo de câmara. Este é um pequeno script em Python que nos permitirá usar esta função:

#!/usr/bin/python
import time
import picamera
 
with picamera.PiCamera() as picx:
    picx.start_preview()
    time.sleep(60)
    picx.stop_preview()
    picx.close()

Captura de fotografias

Com esta livraria tirar uma fotografia converte-se numa tarefa realmente simples, apenas se necessita de declarar uma simples função. Aqui tem um exemplo de como capturar uma foto:

 

#!/usr/bin/python
import time
import picamera
 
with picamera.PiCamera() as picx:
    picx.start_preview()
    time.sleep(5)
    picx.capture('minhafoto.jpg')
    picx.stop_preview()
    picx.close()

 

No exemplo, a imagem vai-se guardar em formato JPG, mas podemos guardá-la noutros formatos como PNG, GIF, BMP, RGB, YUV e RAW, o que facilita poder guardar as imagens no formato que mais nos convenha.

 

Capturar um vídeo

Para tirar uma fotografia, também apenas precisamos de declarar uma simples função. No exemplo mostramos o preview ao mesmo tempo que gravamos, captura diretamente a um arquivo com extensão H264. É importante o uso de ‘wait_recording()‘ já que deste modo comprovam-se certos aspetos como por exemplo se há suficiente espaço no disco para gravar. Para dar um exemplo:

 

#!/usr/bin/python
 
import time
import picamera
 
with picamera.PiCamera() as picx:
	picx.start_preview()
	picx.start_recording('mi_video.h264')
        picx.wait_recording(20)
        picx.stop_recording()
	picx.stop_preview()
	picx.close()

 

O sensor de camera tem aproximadamente 5MPx de resolução (2592×1944 pixeis) mas apenas se visualizam 1920×1080 pixeis nas pré-visualizações, por esta razão a livraria dispõe de uma opção para ajustar a resolução. Aqui está um exemplo:

 

#!/usr/bin/python
 
import time
import picamera
 
with picamera.PiCamera() as picam:
    picam.resolution = (2592, 1944)
    picam.start_preview()
    time.sleep(3)
    picam.capture('foto.jpg')
    picam.stop_preview()
    picam.close()

Também podemos reduzir o peso das imagens, útil por exemplo se tivermos pouco espaço no disco.

#!/usr/bin/python
 
import time
import picamera
 
with picamera.PiCamera() as picam:
    picam.resolution = (2592, 1944)
    picam.start_preview()
    time.sleep(3)
    picam.capture('foto.jpg',resize=(1024,768))
    picam.stop_preview()
    picam.close()

Control do led da câmara

Se quiser capturar imagens ou videos sem ligar o led do módulo da câmara do Raspberry Pi pode desativa-lo graças a esta livraria:

#!/usr/bin/python
 
import time
import picamera
 
with picamera.PiCamera() as picam:
    picam.led= False
    picam.start_preview()
    time.sleep(3)
    picam.stop_preview()
    picam.close()

Outros ajustes

Entre outras opções esta livraria, permite-nos controlar certos aspetos da captura de imagens e videos como o ISO, a velocidade de obturação, o brilho, além de que nos permite aplicar efectos como “negativo”, “solarizado” e GPen. Aqui está um exemplo de código:

#!/usr/bin/python
 
import time
import picamera
 
with picamera.PiCamera() as picam:
    picam.start_preview()
    picam.brightness= 60
    picam.ISO =100 
    time.sleep(3) 
    picam.image_effect = 'negative'
    picam.shutter_speed= 300000 
    picam.capture('foto.jpg',resize=(1024,768)) 
    picam.stop_preview() 
    picam.close()

Gostaram deste artigo ? Deixem o vosso comentário no formulário a baixo.

Não se esqueçam de fazer like na nossa página no facebook.

Todos os produtos utilizados neste artigo podem ser encontrados na loja de componentes eletrónicos ElectroFun.

Comments

comments

Deixar uma resposta

Este site utiliza o Akismet para reduzir spam. Fica a saber como são processados os dados dos comentários.