npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@libs-scripts-mep/inv-img-tool

v3.0.1

Published

Ferramenta de visão computacional com implementações dedicadas à validação de displays em testes automatizados de linha de produção.

Downloads

25

Readme

InvImgTool

Ferramenta de visão computacional com implementações dedicadas à validação de displays em testes automatizados de linha de produção.

Instalando

Abra o terminal, e na pasta do script, execute:

npm i @libs-scripts-mep/inv-img-tool

Desinstalando

Abra o terminal, e na pasta do script, execute:

npm uninstall @libs-scripts-mep/inv-img-tool

Setup de Ambiente

⚠️ Pré-Requisitos:

  • Python >= v3.9.9 download
  • OpenCV Python 4.6.0.66, no terminal digite o comando: pip install opencv-python==4.6.0.66
  • VScode
  • Qualquer WebCam. Recomendação: Logitech 930e

VSCode

Para utilizar o VS Code na execução de arquivos python você deve inicialmente abrir um arquivo python, e selecionar seu interpretador no canto inferior direito:

Image

Image

Execução e Debug

É recomendado utilizar o arquivo launch.json contido na pasta .vscode na pasta raíz do seu workspace.

Image

Dessa forma, quando a for executado o arquivo python desejado, serão passados automaticamente os argumentos configurados conforme .json.

Confira no trecho de código a seguir um exemplo de configuração:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Arquivo Atual",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "justMyCode": false,
            "args": [
                "--conf= {}",
                "--ref=${workspaceFolder}\\reference",
                //
                //modos:
                "--modo=CompPadraoCorArea",
                //ou:
                // "--modo=CompPadraoGrafico",
                //
                //Debug:
                "--debugMode=True"
                //ou:
                // "--debugMode=False"
            ]
        }
    ]
}

Após as devidas configurações, para executar um arquivo propriamente dito, pressione a tecla F5.

.gitignore

É uma boa prática não subir para o repositório arquivos temporários ou de setup de ambiente. Por esse motivo foi criado o .gitignore com o seguinte filtro:

//.gitignore

__pycache__/
.vscode/
reference/
validated/

Voltar ao Início

Overview do Sistema

Mapa de Argumentos

| Arg | Descrição | | ----------------------- | -------------------------------------------------------------------------------------------------------------------- | | ref | Caminho onde serão salvas as imagens de referência | | conf | Objeto de configuração serializado | | modo | Modo que será utilizado para gerar as imagens de referência | | confName | Nome do arquivo de configuração | | debugMode | Habilita o modo de depuração | | imgRef | Imagem referencia de iluminação gerada no RefGenerator.py, será utilizada apenas para encontrar o match com a stream | | timeOut | Timeout total | | paramEditCam | Parametro de filtro da camera que será alterado durante a execução | | stepValue | Intervalo em que será incrementado ou decrementado o valor do parametro escolhido da camera | | methodTemplate | Metodo que será utilizado para realizar o matchTemplate. Ex: TM_CCOEFF_NORMED | | targetMediaLighting | Valor alvo de iluminação | | toleranciaMediaLighting | Tolerancia para o valor de targetMediaLighting |

Relação Argumentos Por Script

| Arquivos | Arg | | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | RefGenerator.py | ref=mode= | | TesteDisplay.py | ref=conf=debugMode= | | JsonSerializer.py | ref=confName= | | AjusteFiltrosCamera.py | conf=imgRef=timeOut=debugMode=stepValue= paramEditCam=methodTemplate=targetMediaLighting=toleranciaMediaLighting= |

⚠️ Argumentos não mencionados devem ser comentados no launch.json

Geração de Referências

O script RefGenerator.py é responsável por gerar as imagens de referência e arquivos .json de configuração.

Image

JsonSerializer.py [Debug Bônus]

Ferramenta utlizada para serializar o objeto gerado pelo script RefGenerator.py.

Configure seu .json de forma que aponte para um arquivo de configuração existente:

{
  "configurations": [
      {
        "args": [
            "--ref=${workspaceFolder}\\reference",
            "--confName=MOD_CPCA_1.json",
        ]
      }
  ]
}

A execução do script resultará em:

Image

Copie o Output, e cole em seu launch.json no valor do argumento --conf=

Execução de um Modo de Teste

Image

Voltar ao Início

Modos de Teste

CompPadraoCorArea

O que faz?

Este arquivo python é um dos modos criados para validação de cor em um determinado local em uma imagem.

Gerando Referências

Dentro do arquivo RefGenerator.py no VS Code pressione F5 para executar o arquivo, logo ao iniciar o programa duas janelas serão abertas para visualização:

Janela de Trackbar

Nesta janela você deve fazer as configurações dos filtros de acordo com o que se aplica melhor para sua validação:

Image

Imagem da Câmera

Nesta outra janela podemos visualizar a imagem da câmera em tempo real: Image

Padrão Gerado

Depois de realizado as configurações dos filtros na janela de trackbar, você deve clicar em 4 pontos na janela de imagem da câmera na sequência a seguir:

Image

Esta janela nos retorna um recorte dos 4 pontos selecionados anteriormente, e é a imagem que será salva como referência.

Indicando Região de Interesse

Image

Através da janela de trackbar é possível movimentar e aumentar o seletor de região.

Image

Na janela do padrão gerado podemos observar o ponto aonde estamos verificando a cor, também podemos verificar o nível de BGR do local pelo terminal do VS Code.

Image

Salvando Referência

Depois de gerado o padrão, pressione a tecla s do seu teclado para salvar a imagem de referencia.

Para sair do software pressione ESC, q ou feche a janela de Ajustes clicando no X.

Voltar ao Início

CompPadraoGrafico

O que faz?

Este arquivo python é um dos modos criados para validação de segmentos de display.

Gerando Referências

Dentro do arquivo RefGenerator.py no VS Code pressione F5 para executar o arquivo, logo ao iniciar o programa três janelas serão abertas para visualização:

Janela de Trackbar

Nesta janela você deve fazer as configurações dos filtros de acordo com o que se aplica melhor para sua validação:

Image

Imagem da Câmera

Nesta outra janela podemos visualizar a imagem da câmera em tempo real: Image

Imagem da Câmera Binarizada

Nesta outra janela podemos visualizar a imagem da câmera em tempo real binarizada: Image

Padrão Gerado

Depois de realizado as configurações dos filtros na janela de trackbar, você deve clicar em 4 pontos na janela de imagem da câmera na sequência a seguir:

Image

Esta janela nos retorna um recorte dos 4 pontos selecionados anteriormente, e é a imagem que será salva como referência.

Image

⚠️ Sempre verifique sua imagem binarizada, pois será utilizada para validar o display. Certifique-se que todos os segmentos que deseja validar estejam aparecendo:

Image

Salvando Referência

Depois de gerado o padrão, pressione a tecla s do seu teclado para salvar a imagem de referencia.

Para sair do software pressione ESC, q ou feche janela de Ajustes clicando no X.

Voltar ao Início

AjusteFiltrosCamera

O que faz?

Este arquivo python é um script auxiliar para resolver o problema de situações em que não temos um controle da iluminação ambiente.

Como funciona?

Através de uma imagem de referencia gerada durante a execução do RefGenerator, o script calcula o valor de iluminação utilizando um sistema de cores chamado HSV, que possui um dos parametros o nível de iluminação de uma imagem, desta forma conseguimos ir modificando parametros da stream para conseguir novamente a iluminação ambiente em que foi gerado os padrões originalmente. Após o script encontrar o nível de iluminação esperado ele nos retorna todos os novos valores de filtros da camera.

Gerando Referências

Durante a execução do arquivo CompPadraoGrafico.py selecione os pontos de interesse que deseja realizar a referencia de iluminação e pressione a tecla i para salvar a referencia como RefLighting.png, após realizar a referencia de iluminação um novo parametros será adicionado ao seu .json de configuração, o parametro 'LightingRefImage'.

Image

Executando o Arquivo

Para execução desse arquivo python apenas será necessário passar todos os valores corretamente conforme descrito no Relação Argumentos Por Script que o script será executado normalmente.

Voltar ao Início