Top Qs
Linha do tempo
Chat
Contexto
OpenCV
Open Source Computer Vision Library Da Wikipédia, a enciclopédia livre
Remove ads
O OpenCV (abreviação de Open Source Computer Vision Library) é uma biblioteca livre e multi-plataforma (uso acadêmico e comercial),[1] criada pela pela empresa Intel em 2000, para o desenvolvimento de aplicativos na área de visão computacional (sistema que interpreta informação visual)[1][2] e também usada nas áreas de inteligência artificial (IA) e aprendizagem de máquina.[2]
![]() | As referências deste artigo necessitam de formatação. (Fevereiro de 2014) |
O OpenCV possui módulos de processamento de imagens e video,[2] Estrutura de dados, Álgebra Linear, GUI (Interface Gráfica do Usuário) básica com sistema de janelas independentes, controle de mouse e teclado, e mais de 350 ferramentas e algoritmos de visão computacional como: filtros de imagem, calibração de câmera, reconhecimento de objetos, análise estrutural. O seu processamento das imagens ocorre em tempo real.[2]
Esta biblioteca foi desenvolvida nas linguagens de programação C/C++. Também, dá suporte a programadores que utilizem Java, Python e Visual Basic e desejam incorporar a biblioteca a seus aplicativos. A versão 1.0 foi lançada no final de 2006 e a 2.0 foi lançada em setembro de 2009.
Remove ads
História
Oficialmente lançado em 1999, o projeto OpenCV foi uma proposta da Intel Research de melhorar aplicações de uso intensivo de processamento, sendo parte de uma série de projetos que incluíam Ray tracing e monitores 3D. Os principais contribuidores do projeto eram da Intel Russia, assim como o time de desempenho de bibliotecas da Intel. No início do projeto, os objetivos foram definidos como:
- Avançar a pesquisa em visão computacional por prover não apenas código aberto mas otimizado para tarefas básicas de visão, de modo que o código pudesse ser prontamente lido e transferível.
- Avançar aplicações baseadas em visão computacional por fazer código portátil e otimizado disponível de graça, com uma licença que não requer que a aplicação seja de código aberto.
Remove ads
Características
Resumir
Perspectiva
O OpenCV trabalha com análise visual em tempo real na inteligência artificial (IA) e no aprendizado de máquina (ou aprendizagem automática ML), fazendo o pré-processamento de imagens ou vídeos antes de introduzir nos modelos de aprendizagem de máquina e nos modelos de aprendizagem profunda (DL).[2] O pré-processamento do OpenCV inclui: o redimensionamento, a conversão do espaço de cores (como BGR para RGB), a redução de ruído da imagem, melhoria da qualidade da imagem para extrair caraterísticas relevantes (algoritmos SIFT, SURF, FAST que identificam pontos-chave na imagem), processamento em tempo real de fluxos de vídeo (fluxo ótico), subtração de fundo, inferência para detecção de objetos (como ferramenta cascatas Haar para deteção de rosto), entender a geometria da câmara, calibrar a câmera, compreender cenas, reconstruir cenas 3D, algoritmos clássicos de aprendizagem profunda como Support Vetor Machines (SVM) e K-Nearest Neighbors (KNN).[2]
O OpenCV cria aplicações de visão computacional usando as bibliotecas de aprendizagem de máquina PyTorch e TensorFlow; enquanto essas bibliotecas fazem a construção e o treinamento de redes neurais, o OpenCV trabalha com a entrada/saída, a manipulação e, o pós-processamento de dados visuais (como o desenho de caixas delimitadoras ou máscaras de segmentação previstas por modelos).[2]
Remove ads
Uso real
Resumir
Perspectiva
o OpenCV é versátil em inúmeras aplicações de inteligência artificial e aprendizado de máquina:
Veículos autónomos: nos carros autónomos e nos assistentes de condução (ADAS) o OpenCV é usado para o processamento inicial de dados da câmera e do LiDAR: deteção de faixas, o reconhecimento de obstáculos (correspondência de caraterísticas), deteção de contornos, o reconhecimento de sinais de trânsito (alimentando um classificador com imagens processadas), a costura de imagens para sistemas de visão surround.[2] Os fotogramas brutos da câmera são processados no OpenCV (correção de distorção e ajuste de brilho) para serem usados no YOLOv8 (modelo de aprendizagem profunda que detecta carros e peões).[2]
Análise de imagens médicas: o OpenCV faz tratamento de vários formatos de imagens de exames médicos (como o DICOM): melhora o contraste da imagem para melhor visibilidade das anomalias, segmenta regiões de interesse (tumores ou órgãos) usando algoritmo de limiarização ou de bacias hidrográficas, regista imagens tiradas em momentos diferentes.[2] Os dados visuais pré-processados são analisados por modelos de aprendizado de máquina especializados para diagnóstico (IA em Radiologia - RSNA).
Outras áreas: Robótica com a Integrating Computer Vision in Robotics,[2] Vigilância com a Security Alarm Systems,[2] Realidade aumentada: no controle da saúde de lantas na agricultura, Realidade virtual, Humano-Computador Interface (HCI), Sistema de reconhecimento facial, Reconhecimento de movimentos, Robôs móveis, Reconstrução 3D, Opentoonz usa o OpenCV para determinadas funcionalidades de visão computacional.
Plataformas compatíveis
Esta biblioteca multi-plataforma funciona com: Android,[3] BlackBerry 10,[4] FreeBSD, iOS,[5] Linux, Maemo,[6] OpenBSD, OS X e, Windows.
Estrutura
- cv — Módulo das principais funcionalidades e algoritmos de Visão Computacional do OpenCV.
- cvaux — Módulo com algoritmos de Visão, ainda está em fase experimental.
- cxcore — Módulo de Estrutura de Dados e Álgebra Linear.
- highgui — Módulo de Controle de Interface e dispositivos de entrada.
- ml — Módulo de “Machine Learning” é um módulo processador de imagem que utiliza algoritmos com aprendizagem de maquina.
- dnn — Módulo de “Deep Learning” é um módulo processador de imagem que utiliza algoritmos com aprendizagem de máquina profundo.
- ed — Manual de estrutura de dados e operações.
Remove ads
Linguagem de programação
O OpenCV é escrito em C++ e sua interface principal é em C++, mas ainda mantém uma interface C mais antiga, menos abrangente, embora extensa. Todos os novos desenvolvimentos e algoritmos aparecem na interface C++. Existem ligações em Python (por exemplo, métodos OpenCV cv.line,[7] OpenCV cv2.cvtcolor,[8] OpenCV cv2.circle[9]), Java e, MATLAB/OCTAVE. A API para essas interfaces pode ser encontrada na documentação online.[10]
Wrappers em várias linguagens de programação foram desenvolvidos para incentivar a adoção por um público mais amplo. Na versão 3.4, as ligações JavaScript para um subconjunto selecionado de funções OpenCV foram lançadas como OpenCV.js, para serem usadas em plataformas da web.[11]
Remove ads
Limitações
A complexidade de alguns algoritmos que a biblioteca usa, pode exigir um conhecimento avançado em matemática e programação.[1] E a performance pode variar dependendo do hardware usado, e da complexidade da análise realizada.[1]
Ligações externas
- Página online oficial
- OpenCV Documentation Wiki
- Great summary cheat sheet sumario de programação
- University of Leeds
Referências
- «O que é OpenCV: Entenda a Biblioteca de Visão Computacional». Chapeco. 6 de agosto de 2024. Consultado em 2 de julho de 2025
- «OpenCV: Biblioteca de visão computacional de código aberto». Ultralytics. Consultado em 2 de julho de 2025
- Android port: http://opencv.willowgarage.com/wiki/AndroidExperimental Arquivado em 26 de novembro de 2012, no Wayback Machine.
- BlackBerry 10 (partial port): https://github.com/blackberry/OpenCV
- Maemo port: https://garage.maemo.org/projects/opencv
- «OpenCV cv.line». 11 de outubro de 2021
- «OpenCV cv2.cvtcolor». 11 de outubro de 2021
- «OpenCV cv2.circle». 11 de outubro de 2021
- OpenCV C interface: http://docs.opencv.org
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads