Leitores como você ajudam a apoiar o MUO. Quando você faz uma compra usando links em nosso site, podemos ganhar uma comissão de afiliado. Consulte Mais informação.

Os seres humanos podem distinguir cerca de 10 milhões de cores. Para percebê-los, você precisa de algo conhecido como paleta de cores. Uma paleta de cores contém as ferramentas para exibir toda a gama de cores visíveis ao olho humano. No mundo real, você os usa para criar designs estéticos no papel, enquanto digitalmente os usa para adicionar cores aos elementos da tela.

Por fim, seu computador codifica todas as diferentes tonalidades que você vê na tela usando um formato específico. Com o Python, você pode desenvolver uma paleta de cores codificada em RGB em apenas algumas linhas de código, graças ao módulo OpenCV e NumPy.

O módulo OpenCV e NumPy

Você pode analisar imagens e vídeos usando o OpenCV. É gratuito, de código aberto, simples de usar e repleto de bibliotecas úteis. Estes fornecem técnicas para classificar, localizar e rastrear objetos em duas e três dimensões. Para instalar o OpenCV em seu ambiente, abra um terminal e execute:

pip instalar opencv-python

O módulo NumPy é outra biblioteca popular que você verá muitos programas Python usar. NumPy — Python numérico — é um módulo que você pode usar para análise de dados e computação científica. Ele fornece objetos de matriz n-dimensionais, bem como operações matemáticas que auxiliam na manipulação desses arrays.

Para instalar o NumPy em seu ambiente, execute:

pip instalar numpy

Geralmente, você usará OpenCV para processar imagens usando técnicas como detecção de borda. Você pode usar o NumPy para realizar a análise de dados na imagem processada. Usando esta combinação você pode criar e decodificar um código QR, classificar imagens, realizar reconhecimento óptico de caracteres e construir sistemas de vigilância por vídeo capazes de detectar movimento e rastrear indivíduos em tempo real.

Como construir uma paleta de cores usando Python

Siga estas etapas para criar uma paleta de cores usando o módulo OpenCV e NumPy em Python.

Você pode encontrar a fonte do Color Palette Using Python neste GitHub repositório.

Comece importando os módulos OpenCV e NumPy. Defina uma função chamada funçãovazia() que contém a instrução pass. A instrução pass atua como um espaço reservado para o código que você pode escrever no futuro. Isso é particularmente útil com funções como createTrackbar, que você usará mais tarde. Requer uma função de retorno de chamada válida e você pode passar emptyFunction como um espaço reservado por enquanto.

importar cv2
importar entorpecido como np

defFunçãovazia():
passar

Gere uma matriz tridimensional de tamanho 512 * 512 * 3 com um tipo de dados de uint8 usando o NumPy zero() função. Cada array consistirá em 512 colunas e 512 linhas. uint8 representa um número inteiro sem sinal, então o programa preenche a matriz com zeros.

imagem = np.zeros((512, 512, 3), np.uint8)

Defina o nome da janela que o programa exibirá e passe para o nomeadoJanela() função para criar uma janela:

windowName = "Paleta de cores OpenCV"
cv2.namedWindow (windowName)

Em seguida, gere três barras de controle para os componentes de cor vermelha, verde e azul. Você pode fazer isso usando OpenCV's criarTrackbar() função. Em primeiro lugar, passe a etiqueta como Vermelho, Azul ou Verde. Em segundo lugar, você precisa passar o nome da janela onde deseja colocar essas barras exemplo, windowName.

O terceiro parâmetro é o limite mínimo da barra de trilha, 0 neste caso. O quarto parâmetro especifica o valor máximo, que é 255 para um valor de cor de 24 bits. O quinto e último parâmetro é uma função de retorno de chamada para a qual o createTrackbar requer uma função válida. É por isso que você criou emptyFunction anteriormente, para atuar como um espaço reservado.

cv2.createTrackbar('Azul', windowName, 0, 255,funçãovazia)
cv2.createTrackbar('Verde', windowName, 0, 255,funçãovazia)
cv2.createTrackbar('Vermelho', windowName, 0, 255,funçãovazia)

Declare um loop while infinito e passe o nome da janela junto com a imagem que deseja exibir para o OpenCV imshow() função. Como a imagem contém uma matriz tridimensional de zeros, o programa exibe inicialmente uma tela preta.

Verifique se o usuário pressionou a tecla escape testando o valor de waitkey() contra 27 (o código ASCII para a tecla Escape). A função waitkey() exibe a janela por um determinado número de milissegundos ou até que você pressione uma tecla. Ao passar um como entrada, ele exibe a janela por um milissegundo, mas se regenera devido ao loop while infinito.

Para obter a posição atual da barra de controle, passe o nome da barra de controle junto com o nome da janela para getTrackbarPos(). Repita esta etapa para os três componentes de cor separados, azul, verde e vermelho. Use o operador de fatia para atribuir os três valores à matriz de imagem. Isso substituirá o conjunto anterior de valores, inicialmente todos zeros, pelos valores atuais de acordo com as posições da barra de controle.

enquanto (Verdadeiro):
cv2.imshow (windowName, imagem)

se cv2.waitKey(1) == 27:
quebrar

azul = cv2.getTrackbarPos('Azul', windowName)
verde = cv2.getTrackbarPos('Verde', windowName)
vermelho = cv2.getTrackbarPos('Vermelho', windowName)
imagem[:] = [azul, verde, vermelho]
impressão (azul, verde, vermelho)

Assim que o usuário pressionar a tecla Escape, use destroyAllWindows() para fechar as janelas que o programa abriu:

cv2.destroyAllWindows()

Por fim, junte tudo e execute-o para controlar e visualizar sua paleta de cores.

A saída do programa de paleta de cores Python

Ao executar o programa acima, aparece uma janela que contém três barras de controle para as cores Azul, Verde e Vermelho. As barras da trilha se movem de um intervalo de 0 a 255. Ao variar os valores das diferentes barras, você verá diferentes tonalidades de cores na seção abaixo.

Neste primeiro exemplo, você pode ver a configuração da barra azul como 0, verde como 69 e vermelha como 255. A cor de saída resultante é um tom de laranja/vermelho. Além disso, a janela do terminal exibe os valores de cor como 0 69 255.

Da mesma forma, quando você definir a barra azul como 130, verde como 0 e vermelha como 75, obterá uma cor índigo.

As várias aplicações do OpenCV

O OpenCV oferece funções valiosas para tarefas como processamento de imagens, reconhecimento de objetos, reconhecimento facial e rastreamento. Usando o OpenCV, você pode produzir aplicativos de visão computacional em tempo real que seriam uma benção em áreas como robótica, automação industrial, imagens médicas e sistemas de vigilância.

O futuro da visão computacional é promissor. Você poderá usar a visão computacional para ajudar os deficientes visuais, obter melhor crescimento na agricultura, aumentar a segurança nas estradas usando carros autônomos e até navegar em outros planetas, como Marte.