Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

OpenCV

OpenCV è una libreria open source con oltre 2.500 algoritmi per l'elaborazione delle immagini e la visione artificiale. Scopri cosa fa, come si abbina al deep learning e consulta il codice.

OpenCV (Libreria open source di visione artificiale) è una libreria open source con oltre 2.500 algoritmi ottimizzati per l'elaborazione delle immagini e la visione artificiale (CV). Legge e scrive immagini e video, acquisisce flussi dalle videocamere, filtra e trasforma i pixel, rileva e abbina caratteristiche, calibra le videocamere ed esegue reti neurali addestrate. OpenCV è nato presso Intel Research nel 1999, è scritto in C++ con binding per Python e Java ed è distribuito con licenza Apache 2.0 dalla versione 4.5.0. In Python si installa con pip install opencv-python e si importa come cv2; ogni immagine è rappresentata come un array NumPy.

Cosa fa OpenCV#

  • I/O di immagini e video: legge e scrive i formati immagine più comuni, decodifica file video e acquisisce fotogrammi da videocamere e flussi di rete.
  • Elaborazione delle immagini: ridimensionamento, conversione dello spazio colore, sfocatura, aumento della nitidezza, sogliatura e operazioni morfologiche: le normali fasi di preelaborazione prima che un'immagine raggiunga un modello.
  • Rilevamento e abbinamento delle caratteristiche: i rilevatori di angoli e punti chiave, come SIFT e ORB, individuano punti distintivi che possono essere abbinati tra immagini per creare panorami, localizzare oggetti ed eseguire SLAM visivo. SIFT è entrato nella libreria principale con la versione 4.4.0, dopo la scadenza del relativo brevetto.
  • Geometria delle videocamere: la calibrazione elimina la distorsione dell'obiettivo, le omografie correggono la prospettiva e l'abbinamento stereo ricava la profondità da due videocamere per la robotica e la ricostruzione 3D.
  • Analisi video: la sottrazione dello sfondo separa gli oggetti in movimento da una scena statica e il flusso ottico misura lo spostamento dei pixel tra i fotogrammi.
  • Inferenza con reti neurali profonde: il modulo dnn carica modelli addestrati, ad esempio in formato ONNX, e li esegue su CPU o GPU senza installare un framework di deep learning.

Questa pipeline classica individua i contorni delle forme in un'immagine senza ricorrere a modelli appresi:

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)}")

Stampa Image shape: (1080, 810, 3), contours found: 1449: un'immagine da 1080×810 con tre canali colore e 1.449 contorni separati tracciati dai suoi bordi. OpenCV memorizza i canali colore nell'ordine blu-verde-rosso (BGR), quindi le immagini destinate alle librerie che si aspettano RGB richiedono prima una conversione cv2.cvtColor.

OpenCV e i framework di deep learning#

OpenCV e i framework di deep learning, come PyTorch e TensorFlow, intervengono in fasi diverse della stessa pipeline. OpenCV gestisce la preelaborazione dei dati e l'output attorno alla rete: acquisisce i fotogrammi, li ridimensiona, disegna i risultati e scrive il video di output; nel frattempo il framework addestra ed esegue la rete neurale convoluzionale. Un'applicazione video in tempo reale ripete questi passaggi per ogni fotogramma:

Ultralytics YOLO26 accetta direttamente i fotogrammi NumPy BGR di OpenCV e results[0].plot() restituisce un fotogramma annotato nello stesso formato, quindi il modello si integra in un ciclo OpenCV senza conversioni. Questo esempio esegue una volta il ciclo sull'immagine di esempio inclusa nel pacchetto ultralytics:

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

# OpenCV carica l'immagine di esempio inclusa nel pacchetto come array NumPy BGR
frame = cv2.imread(str(ASSETS / "bus.jpg"))

# YOLO26 riceve direttamente il fotogramma OpenCV
model = YOLO("yolo26n.pt")
results = model(frame)

# plot() restituisce un array BGR annotato che OpenCV può visualizzare o salvare
annotated = results[0].plot()
cv2.imwrite("bus_annotated.jpg", annotated)

All'interno di un ciclo video, le stesse tre chiamate vengono eseguite su ogni fotogramma proveniente da cv2.VideoCapture; cv2.imshow o cv2.VideoWriter sostituisce cv2.imwrite.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning