Skip to content

rubensantoniorosa2704/chromex

Repository files navigation

banner

Chromex

Chromex é uma biblioteca desenvolvida em Python que processa imagens da câmera e identifica a cor predominante. Este foi um projeto criado no curso de Graduação de Sistemas de Informação. O objetivo era aplicar conceitos de visão computacional ao desenvolvimento de software e fornecer uma ferramenta para a Associação de Deficientes Visuais de Brusque (ADVB).

Aviso

Os arquivos 'app.py' e os respectivos arquivos kivy foram criados a fim de exemplificar o uso do programa, por isso, não são necessários para a execução das funções principais.

Funcionamento

O programa usa a câmera do computador para capturar uma imagem em tempo real. Ele então analisa essa imagem para determinar a cor predominante na área central. Em seguida, utiliza um arquivo CSV para associar os valores de cor a nomes de cores conhecidos e pronuncia o nome da cor predominante usando um mecanismo text-to-speech.

Licensa

A Licensa do Chromex é a GNU General Public License v3.0, encontrada no arquivo LICENSE

Acesse o repositório em https://github.com/rubensantoniorosa2704/chromex

Documentação

Nesta versão, o propósito foi modularizar simplificar a lógica das funções já existentes. Agora, ao invés de arquivos separados, todas as funções se encontram no mesmo arquivo, dentro da classe Chromex(), o cerne do nosso código. A classe Chromex() leva os seguinte parâmetros: o nome do arquivo que será salvo como a captura da imagem; e o caminho para a base de dados de cores.

  • getColorName()

    A função getColorName determina o nome da cor predominante em uma imagem RGB fornecida. Ela calcula as médias dos canais de cor (vermelho, verde e azul) em uma área central da imagem, compara essas médias com uma tabela de cores e retorna o nome da cor mais próxima. Um limiar é usado para garantir correspondências precisas, e "Cor desconhecida" é retornado se nenhuma cor correspondente for encontrada.

        """
        Esta função recebe uma imagem capturada em formato RGB como entrada e calcula a cor predominante
        na área central da imagem. Para isso, ela divide a imagem em um retângulo central e calcula a
        média dos valores de cor (R, G, B) nessa área. Em seguida, compara esses valores com uma tabela
        de cores predefinida carregada a partir de um arquivo CSV para encontrar a cor mais próxima.
    
        Parâmetros:
            - image (numpy.ndarray): A imagem capturada em formato RGB.
    
        Retorna:
            str: O nome da cor predominante na imagem.
        """
    

  • capturarImagem()

    Captura e converte a imagem da câmera.

        """
        Captura uma imagem da câmera e a converte para o formato RGB.
    
        Esta função ativa a câmera do computador, captura uma imagem em tempo real e a converte para
        o formato RGB. Ela permite que o usuário visualize a imagem em uma janela, pressione a tecla 's'
        para salvar a imagem capturada no arquivo especificado e, em seguida, retorna a imagem em RGB.
    
        Retorna:
            numpy.ndarray: A imagem capturada em formato RGB.
        """
    

  • sayColorName()

    A classe rgbList() inicializa as listas para os valores de cada canal rgb. A função appendNewRGB(r, g, b) apenas adiciona os parâmetros para cada lista.

        """
        Diz o nome da cor usando um mecanismo text-to-speech.
    
        Esta função utiliza a biblioteca `pyttsx3` para pronunciar o nome da cor especificada em voz alta.
        Ela recebe o nome da cor como entrada e utiliza um mecanismo de síntese de voz para produzir a
        saída de áudio correspondente. Além disso, imprime o nome da cor no console antes de pronunciá-lo.
    
        Parâmetros:
            - color_name (str): O nome da cor a ser pronunciado.
        """
    

Contribuição

Deseja contribuir com o projeto? Fique atento às orientações abaixo!

  • Comece com um issue aberto: precisamos da sua ajuda para resolver bugs, ou mesmo para aprimorar a documentação! Iniciantes são bem vindos, procure pela tag "good first issue" para saber onde começar.
  • Crie um fork do projeto. Isso criará uma cópia do repositório original em sua conta do GitHub.

  • capturar2
  • Clone o repositório: vá para o repositório recém-forked e copie o URL do repositório. Em sua máquina local, abra um terminal e execute o seguinte comando para clonar o repositório em sua máquina:

  • Capturar
  • Crie um branch: Isso manterá seu trabalho isolado do branch principal.

  • Capturar
  • Agora já podemos por a mão na massa! Faça as alterações necessárias, e salve-as usando os comandos git add e git commit

  • Capturar
  • Sincronize com o repositório original: antes de enviar suas alterações, lembre-se de sincronizar seu fork com o repositório original. Os seguintes comandos servem para definir o repositório remoto e sincronizar os seus arquivos com o repositório original

  • Capturar
  • Subir alterações. Agora é hora de subir o que você criou para o repositório remoto. Para isso, use o seguinte comando:

  • Capturar
  • Crie um pull request: Vá para a página do seu fork no GitHub e clique no botão "Compare & pull request" (Comparar e abrir um pull request). Preencha as informações necessárias, incluindo uma descrição clara do que você fez nas alterações.
  • Espere pelo feedback dos mantenedores, e depois que o pull request for aceito e mesclado (merged) no projeto original, sincronize seu fork com o projeto principal usando o comando "git pull upstream main"

Parabéns!

Você contribuiu com sucesso para o projeto! Agradecemos imensamente pelo seu apoio até aqui. S2

Perguntas Frequentes

  • Estou tentando executar o programa e não funciona.

  • Confira se você tem o Python instalado, e se instalou todas as dependências necessárias. Antes de rodar o programa, navegue até a pasta raiz do projeto e digite o comando: pip install requirements.txt. Se estiver executando no Linux, não esqueça de executar como sudo, pois, devido ao acesso à câmera e ao teclado, o programa requer privilégios de administrador

  • Quais são os comandos?

  • Pressione 'S' para capturar a imagem e retornar a cor em voz alta, e pressione 'Q' para sair do programa.

  • Onde encontro a documentação?

  • A documentação detalhada das funções pode ser encontrada no próprio código, além deste arquivo README.md


Futuramente...

  • Criação de um pacote para o Python Package Index.
  • Novas funcionalidades...

Contatos

Caso precise de ajuda ou tenha algum feedback, mande um email para rubensrosaneto27@gmail.com

About

Reconhecimento de cores em tempo real.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •