Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

OpenCV

OpenCV é uma biblioteca de código aberto com mais de 2.500 algoritmos para processamento de imagens e visão computacional. O que faz, como se combina com aprendizagem profunda e código.

A OpenCV (Biblioteca de Visão Computacional de Código Aberto) é uma biblioteca de código aberto com mais de 2.500 algoritmos otimizados para processamento de imagens e visão computacional (CV). Ela lê e grava imagens e vídeos, captura fluxos de câmeras, filtra e transforma pixels, detecta e associa características, calibra câmeras e executa redes neurais treinadas. A OpenCV começou no centro de pesquisa da Intel em 1999, é escrita em C++ com bindings para Python e Java e, desde a versão 4.5.0, é distribuída sob a licença Apache 2.0. Em Python, é instalada com pip install opencv-python e importada como cv2; cada imagem é representada como um array NumPy.

O que a OpenCV faz#

  • Entrada e saída de imagens e vídeos: lê e grava formatos de imagem comuns, decodifica arquivos de vídeo e captura quadros de câmeras e fluxos de rede.
  • Processamento de imagens: redimensionamento, conversão de espaço de cores, desfoque, nitidez, limiarização e operações morfológicas, as etapas padrão de pré-processamento antes de uma imagem chegar ao modelo.
  • Detecção e associação de características: detectores de cantos e pontos-chave, como SIFT e ORB, encontram pontos distintos que podem ser associados entre imagens para montar panoramas, localizar objetos e executar SLAM visual. O SIFT foi incorporado à biblioteca principal na versão 4.4.0, após a expiração de sua patente.
  • Geometria de câmera: a calibração remove a distorção da lente, as homografias corrigem a perspectiva e a associação estéreo recupera a profundidade usando duas câmeras para robótica e reconstrução 3D.
  • Análise de vídeo: a subtração de fundo separa objetos em movimento de uma cena estática, e o fluxo óptico mede o deslocamento dos pixels entre quadros.
  • Inferência de redes neurais profundas: o módulo dnn carrega modelos treinados, por exemplo no formato ONNX, e os executa na CPU ou GPU sem precisar instalar uma estrutura de aprendizado profundo.

Este pipeline clássico encontra os contornos de formas em uma imagem sem usar nenhum modelo aprendido:

import urllib.request

import cv2
import numpy as np

# Download a sample image and decode it into a BGR NumPy array
data = urllib.request.urlopen("https://ultralytics.com/images/bus.jpg").read()
image = cv2.imdecode(np.frombuffer(data, np.uint8), cv2.IMREAD_COLOR)

# Classical pipeline: grayscale, blur to suppress noise, then Canny edge detection
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blurred = cv2.GaussianBlur(gray, (5, 5), 0)
edges = cv2.Canny(blurred, 50, 150)

# Trace connected edge pixels into contours, the outlines of shapes in the scene
contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
print(f"Image shape: {image.shape}, contours found: {len(contours)}")

Ele imprime Image shape: (1080, 810, 3), contours found: 1449: uma imagem de 1080×810 com três canais de cor e 1.449 contornos separados traçados a partir das bordas. A OpenCV armazena os canais de cor na ordem azul-verde-vermelho (BGR), então as imagens enviadas a bibliotecas que esperam RGB precisam primeiro de uma conversão cv2.cvtColor.

OpenCV e estruturas de aprendizado profundo#

A OpenCV e as estruturas de aprendizado profundo, como PyTorch e TensorFlow, atuam em etapas diferentes do mesmo pipeline. A OpenCV cuida do pré-processamento de dados e das saídas ao redor da rede: captura quadros, redimensiona-os, desenha resultados e grava o vídeo de saída; a estrutura treina e executa a rede neural convolucional entre essas etapas. Um aplicativo de vídeo em tempo real repete estas etapas em cada quadro:

O Ultralytics YOLO26 aceita diretamente os quadros NumPy BGR da OpenCV, e results[0].plot() retorna um quadro anotado no mesmo formato; assim, o modelo se integra a um loop da OpenCV sem nenhuma conversão. Este exemplo executa uma passagem desse loop na imagem de amostra incluída no pacote ultralytics:

import cv2
from ultralytics import YOLO
from ultralytics.utils import ASSETS

# A OpenCV carrega a imagem de amostra incluída como um array NumPy BGR
frame = cv2.imread(str(ASSETS / "bus.jpg"))

# O YOLO26 recebe diretamente o quadro da OpenCV
model = YOLO("yolo26n.pt")
results = model(frame)

# plot() retorna um array BGR anotado que a OpenCV pode exibir ou salvar
annotated = results[0].plot()
cv2.imwrite("bus_annotated.jpg", annotated)

Dentro de um loop de vídeo, as mesmas três chamadas são executadas em cada quadro de cv2.VideoCapture, e cv2.imshow ou cv2.VideoWriter substitui cv2.imwrite.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina