OpenCV
OpenCV (ang. Open Source Computer Vision Library) – otwarto‑źródłowa biblioteka programistyczna służąca do przetwarzania i analizy obrazów oraz wideo, a także do rozwiązywania zadań widzenia komputerowego i uczenia maszynowego. Projekt został rozpoczęty w 1999 roku w ramach inicjatywy badawczej przedsiębiorstwa Intel i od tego czasu jest rozwijany przez społeczność międzynarodową.
Historia
- 1999 – powstaje pierwsza wersja biblioteki w laboratorium Intel w Stanford.
- 2000 – Gary Bradsky i Vadim Kalashnikov publikują otwartą wersję biblioteki pod licencją BSD.
- 2006 – wydanie wersji 2.0, wprowadzono wsparcie języka Python oraz Java.
- 2012 – premierowa wersja 3.0, znacznie rozbudowano moduły głębokiego uczenia i wprowadzono interfejsy do CUDA.
- 2023 – wydanie wersji 4.8, dodano wsparcie dla Qt, Androida oraz iOS.
Architektura i główne moduły
Biblioteka jest podzielona na szereg modułów, które można wykorzystywać niezależnie:
- core – podstawowe struktury danych (Mat, Vec) i operacje na macierzach.
- imgproc – przetwarzanie obrazów (filtry, transformacje geometryczne, detekcja krawędzi).
- highgui – interfejsy do wyświetlania i zapisu obrazów oraz wideo.
- video – algorytmy analizy wideo, m.in. optyczny przepływ (optical flow).
- features2d – detekcja i opis cech (SIFT, SURF, ORB).
- objdetect – klasyfikatory obiektów (np. Haar cascade).
- dnn – uruchamianie sieci neuronowych (TensorFlow, Caffe, ONNX).
- ml – algorytmy klasyfikacji i regresji (SVM, drzewa decyzyjne).
Języki programowania i interfejsy
OpenCV udostępnia oficjalne interfejsy dla następujących języków:
- C++ – język bazowy, zapewniający pełną funkcjonalność.
- Python – najpopularniejszy wśród naukowców i szybki do prototypowania.
- Java – wykorzystywany w aplikacjach mobilnych i desktopowych.
- C# – dostępny poprzez nakładki takie jak Emgu CV.
Zastosowania
OpenCV znajduje zastosowanie w wielu dziedzinach:
- Robotyka – nawigacja i rozpoznawanie otoczenia.
- Medycyna – segmentacja obrazów MRI i CT.
- Motoryzacja – systemy wspomagania kierowcy (ADAS).
- Rozpoznawanie twarzy – bezpieczeństwo i kontrola dostępu.
- Rzeczywistość rozszerzona – śledzenie markerów i planowanie scen.
- Analiza wideo – liczenie osób, monitorowanie ruchu.
Licencja i dostępność
OpenCV jest udostępniane na licencji BSD, co pozwala na darmowe użycie w projektach komercyjnych oraz niekomercyjnych. Kod źródłowy znajduje się w publicznym repozytorium Git (hostowany na platformie GitHub – w encyklopedii opisano tę platformę). Biblioteka jest dostępna dla systemów Windows, Linux, macOS, Android oraz iOS.
Przykładowy kod w Pythonie
import cv2
# wczytaj obraz
obraz = cv2.imread('obraz.jpg')
# konwersja do skali szarości
szary = cv2.cvtColor(obraz, cv2.COLOR_BGR2GRAY)
# wykryj krawędzie metodą Canny'ego
krawedzie = cv2.Canny(szary, 100, 200)
# wyświetl wynik
cv2.imshow('Krawedzie', krawedzie)
cv2.waitKey(0)
cv2.destroyAllWindows()
Bibliografia i dalsze lektury
W encyklopedii dostępne są szczegółowe artykuły omawiające poszczególne tematy powiązane z OpenCV:
OpenCV pozostaje jednym z najważniejszych narzędzi w dziedzinie sztucznej inteligencji i przetwarzania sygnałów wizualnych, a jego otwarta licencja sprzyja ciągłemu rozwojowi i adaptacji w nowych technologiach.