Índice:
- Etapa 1: os arquivos de cabeçalho
- Etapa 2: captura do vídeo
- Etapa 3: captura do quadro e definição da cor
- Etapa 4: mascaramento e extração
- Etapa 5: finalmente exibindo
- Etapa 6: demonstração
Vídeo: Detecção de cor simples usando OpenCV: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
Oi! Hoje vou mostrar um método simples de detectar uma cor de um vídeo ao vivo usando OpenCV e python.
Basicamente irei apenas testar se a cor necessária está presente no quadro de fundo ou não e usando módulos OpenCV irei mascarar essa região e exibir simultaneamente o quadro.
Etapa 1: os arquivos de cabeçalho
Agora aqui eu usei dois arquivos de cabeçalho, ou seja, cv2 e NumPy. Basicamente, cv2 é a biblioteca OpenCV que carrega todos os arquivos c ++ que são importantes ao usar os comandos nos códigos (ela contém todas as definições).
E Numpy é uma biblioteca python essencial para armazenar um array multidimensional. Estaremos usando para armazenar nossas coordenadas de gama de cores.
E numpy as np basicamente ajuda nosso código a encurtar um pouco usando np todas as vezes em vez de numpy.
Etapa 2: captura do vídeo
Isso é muito simples ao usar o python. Aqui só precisamos ligar o gravador de vídeo para que ele possa começar a gravar os quadros.
Agora o valor dentro do VideoCapture indica a câmera, no meu caso a câmera está conectada ao meu laptop, então 0.
Você pode ir de forma semelhante a 1 para a câmera secundária e assim por diante. VideoCapture cria o objeto para ele.
Etapa 3: captura do quadro e definição da cor
Agora aqui temos que fazer algo para que possamos capturar o quadro instantâneo do vídeo que nos ajudará a extrair a imagem e podemos trabalhar nisso de acordo com os requisitos.
O loop "while" nos ajudará a executar o loop até o tempo necessário. Agora "_, frame = cap.read ()" é usado para verificar a validade do Frame capturado e o armazena. "cap.read () é uma variável booleana e retorna true se o quadro for lido corretamente e se você não obtiver nenhum quadro, ele não mostrará nenhum erro, você simplesmente obterá Nenhum.
Agora a linha 11 e a linha 12 basicamente definem a gama de cores que precisamos detectar. Para isso, usei a cor azul.
Você pode prosseguir com qualquer cor, basta digitar os valores BGR para aquela cor específica. É melhor definir duas matrizes usando matrizes numpy, pois a detecção de uma cor específica no mundo real não servirá ao nosso propósito, em vez disso, definiremos uma faixa de cor azul para que seja detectada dentro da faixa.
Para isso, defini duas variáveis que armazenam os valores de BGR inferiores e os valores de BGR superiores.
Etapa 4: mascaramento e extração
Agora vem a tarefa principal de mascarar a moldura e extrair a cor da moldura. Usei os comandos predefinidos presentes na biblioteca do OpenCV para fazer o mascaramento. Basicamente, mascarar é o processo de remover alguma parte do quadro, ou seja, removeremos os pixels cujos valores de BGR de cor que não estão na faixa de cores definida e isso é feito por cv2.inRange. Posteriormente, aplicamos o intervalo de cores à imagem mascarada dependendo dos valores dos pixels e, para isso, usaremos cv2.bitwise_and, ele simplesmente atribuirá as cores à região mascarada dependendo dos valores da máscara e do intervalo de cores.
Link para cv2. bitwise_and:
Etapa 5: finalmente exibindo
Aqui, usei o cv2.imshow () básico para exibir cada quadro como uma imagem. Como tenho os dados do quadro armazenados em variáveis, posso recuperá-los em imshow (). Aqui, exibi todos os três quadros, original, mascarado e colorido.
Agora temos que sair do loop while. Para isso, podemos simplesmente implementar o cv2.wait. Key (). Basicamente, ele informa o tempo de espera antes de responder. Portanto, se você passar 0, ele aguardará infinitamente e 0xFF diz que a arquitetura é de 64 bits. "ord ()" especifica o caractere que, quando pressionado, executará o comando break no bloco if e sairá do loop.
Então cap.release () fecha o gravador de vídeo e cv2.destroyAllWindows () fecha todas as janelas abertas.
Se você tiver qualquer problema, por favor me avise.
Link para o código-fonte:
Recomendado:
Máquina de pintura com detecção de cor: 4 etapas
Máquina de pintura com detecção de cores: a máquina de pintura com detecção de cores copia as cores ao seu redor e permite que você desenhe com elas. Se você tem a tinta de cores primárias, pode usar o sensor de cores RGB para detectar a cor desejada e misturá-la. Mas lembre-se, use o objeto de cor brilhante
Detecção de cores em Python usando OpenCV: 8 etapas
Detecção de cores em Python usando OpenCV: Hello! Este instrutível é usado para orientar sobre como extrair uma cor específica de uma imagem em python usando a biblioteca openCV. Se você é novo nessa técnica, não se preocupe, no final deste guia você será capaz de programar sua própria cor
Detecção de objeto com Dragonboard 410c ou 820c usando OpenCV e Tensorflow: 4 etapas
Detecção de objetos W / Dragonboard 410c ou 820c usando OpenCV e Tensorflow .: Este manual de instruções descreve como instalar OpenCV, Tensorflow e estruturas de aprendizado de máquina para Python 3.5 para executar o aplicativo de detecção de objetos
DIY Home Security - Como fazer uma detecção de movimento simples - Nova versão: 6 etapas
DIY Home Security - Como fazer uma detecção de movimento simples | Nova versão: Neste projeto, mostrarei como fazer um alarme de notificação de movimento de segurança doméstica de baixo custo! Veja a versão antiga: como fazer um sistema de segurança WiFi de $ 10 em casa
Uma maneira realmente simples / fácil / não complicada de fazer pessoas / humanos / animais / robôs parecerem ter uma visão de calor realmente fria / brilhante (cor de sua escolha) usando o GIMP: 4 etapas
Uma maneira realmente simples / fácil / não complicada de fazer pessoas / humanos / animais / robôs parecerem ter uma visão de calor realmente fria / brilhante (cor de sua escolha) usando o GIMP: Leia … o … título