WebCamMax é um software de código aberto que visa fornecer um conjunto de ferramentas para auxiliar na gestão de uma webcam para fins de gravação de vídeo. Uma das principais funcionalidades é a possibilidade de TRAVAR A JANELA da webcam, mantendo-a sempre fixa na tela e podendo ser arrastada para qualquer posição. Além disso, o software oferece a possibilidade de mudar o formato da janela da webcam entre CIRCULAR e QUADRADA, aplicar filtros de imagem, desenhar na tela e muito mais.
- WebCamMax
- Python 3.x
- PyQt5
- OpenCV
É fortemente recomendado criar e ativar um ambiente virtual para evitar conflitos de dependências com outros projetos. No terminal ou prompt de comando, execute:
# Crie o ambiente virtual
python3 -m venv venv
# Ative o ambiente virtual (Linux/macOS)
source venv/bin/activate
# Ative o ambiente virtual (Windows)
venv\Scripts\activatePara instalar cada biblioteca de forma manual, execute no terminal (já com o ambiente virtual ativado):
pip install PyQt5==5.15.11
pip install opencv-python==4.11.0.86
pip install opencv-python-headless==4.11.0.86
python3 main.py Se preferir instalar todos os pacotes de uma vez, utilize:
pip install -r requirements.txt
python3 main.pyPara iniciar o projeto, execute o script principal:
python main.py| Tela Princial | WebCam Circular |
|---|---|
![]() |
![]() |
| WebCam Quadrada com Menu | Janela de Desenho |
![]() |
![]() |
O arquivo main_window.py contém as seguintes funcionalidades:
- Abrir Webcam: Botão que lança a Tela Secundária (SecondWindow).
- Fechar Webcam: Botão que fecha a Tela Secundária.
- Salvar Configurações: Menu para salvar as configurações atuais.
- Carregar Configurações: Menu para carregar configurações previamente salvas.
- Aplicar Filtro Sobel: Menu para aplicar o filtro Sobel.
- Aplicar Filtro Gaussian: Menu para aplicar o filtro Gaussian.
- Aplicar Filtro Salt & Pepper: Menu para aplicar o filtro Salt & Pepper.
- Aplicar Filtro Gray: Menu para aplicar o filtro Gray.
- Resetar Filtros: Menu para resetar os filtros aplicados.
- Borda Circular: Menu para definir a borda da captura como circular.
- Borda Quadrada: Menu para definir a borda da captura como quadrada.
- Travar Janela: Menu para travar a posição da janela.
- Destravar Janela: Menu para destravar a posição da janela.
- Abrir Desenho: Menu para ativar o modo de desenho na tela.
- Sair do Desenho: Menu para desativar o modo de desenho na tela.
- Sobre este projeto: Menu para exibir informações sobre o projeto.
A SecondWindow oferece diversas funcionalidades acessíveis através da barra de ferramentas (toolBarLayout):
- Fechar: Botão para fechar a janela.
- Minimizar: Botão para minimizar a janela.
- Maximizar/Restaurar: Botão para maximizar ou restaurar o tamanho da janela.
- Ocultar Barra: Botão para ocultar a barra de ferramentas (atalhos: Ctrl+N para ocultar, Ctrl+M para mostrar).
- Flip Horizontal: Botão para inverter horizontalmente a imagem da webcam.
- Placeholder 1: Espaço reservado para futuras funcionalidades.
- Placeholder 2: Espaço reservado para futuras funcionalidades.
- Placeholder 3: Espaço reservado para futuras funcionalidades.
- Travar/Destravar: Botão para travar ou destravar a janela, mantendo-a sempre no topo.
- Botão mudar Círculo/Quadrado: Botão para alternar entre os formatos de janela circular e quadrada.
- Redimensionar: Botão para redimensionar a janela arrastando o botão.
- Atalhos (ocultar/mostrar barra): Atalhos para ocultar (Ctrl+N) e mostrar (Ctrl+M) a barra de ferramentas.
A estrutura típica do projeto é:
projeto-webcam/
├── ICONS/
├── filters.py
├── drawing_window.py
├── second_window.py
├── settings.py
├── main_window.py
├── main.py
├── config.mcam
├── requirements.txt
├── README.md
├── LICENSE
Contribuições são bem-vindas! Para propor melhorias, correções ou novas funcionalidades:
- Faça um fork deste repositório.
- Crie uma nova branch:
git checkout -b minha-nova-feature. - Faça commit das suas alterações:
git commit -m 'Adicionando nova feature'. - Faça push para a branch:
git push origin minha-nova-feature. - Abra um Pull Request descrevendo suas alterações.
- Python 3.x
- PyQt5
- OpenCV
Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Se aparecer o erro abaixo, execute o comando abaixo para corrigir o problema:
ERROR:
QObject::moveToThread: Current thread (0x3ce0bd50) is not the object's thread (0x3d356b60).
Cannot move to target thread (0x3ce0bd50)
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "~/WebCamMax/venv/lib/python3.12/site-packages/cv2/qt/plugins" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: xcb, linuxfb, minimal, offscreen, vnc, webgl.
Aborted (core dumped)CORREÇÃO:
### DESINSTALAR AS BIBLIOTECAS DO requirements.txt
pip uninstall -r requirements.txt -y
### INSTALAR MANUALMENTE
pip install PyQt5==5.15.11
pip install opencv-python==4.11.0.86
pip install opencv-python-headless==4.11.0.86
python3 main.py 


