Open Source Computer Vision (OpenCV) to biblioteka programowania komputerowego typu open source opracowana w celu obsługi aplikacji wykorzystujących wizję komputerową. Zapewnia setki funkcji do przechwytywania, analizy i manipulowania danymi wizualnymi i może wyeliminować niektóre problemy, z jakimi borykają się programiści podczas tworzenia aplikacji, które opierają się na wizji komputerowej. Części biblioteki zapewniają również interfejs użytkownika i funkcje rozpoznawania wzorców. OpenCV został wykorzystany zarówno w praktycznych, jak i kreatywnych zastosowaniach, w tym w pojazdach do samodzielnego pilotażu i nowych formach sztuki cyfrowej.
Biblioteki programistyczne zapewniają wspólne funkcje lub złożone możliwości, z których programiści mogą korzystać w swoich programach. Biblioteka OpenCV zawiera setki funkcji, które obsługują przechwytywanie, analizę i manipulację informacjami wizualnymi przesyłanymi do komputera przez kamery internetowe, pliki wideo lub inne typy urządzeń. Proste funkcje mogą służyć do rysowania linii lub innego kształtu na ekranie, podczas gdy bardziej zaawansowane części biblioteki zawierają algorytmy do wykrywania twarzy, śledzenia ruchu i analizowania kształtów. Wiele algorytmów tej biblioteki jest związanych z określonymi zastosowaniami widzenia komputerowego, w tym kontrolą produktów, obrazowaniem medycznym, robotyką, rozpoznawaniem twarzy i gestów oraz interakcją człowiek-komputer (HCI). Jako biblioteka programistyczna typu open source, OpenCV może być używany z bardzo niewielkimi ograniczeniami zarówno w projektach komercyjnych, jak i hobbystycznych.
Dzięki OpenCV programista może wyeliminować część złożonej i żmudnej pracy, która wymaga niezawodnego działania wizji komputerowej i skupić się na budowaniu aplikacji. Zamiast tworzyć algorytmy rozpoznawania twarzy i tym podobne, programista może dodać tylko kilka linijek kodu, aby program miał dostęp do odpowiedniej funkcji biblioteki. Oznacza to również, że programista nie musi opanować każdego aspektu wizji komputerowej, aby zbudować program, który go używa.
Oprócz podstawowej funkcjonalności przetwarzania wideo i obrazu, OpenCV zawiera dodatkowe moduły przeznaczone do obsługi innych obszarów aplikacji. Jeden z tych modułów zawiera algorytmy uczenia maszynowego, które mogą analizować i przewidywać wzorce wizualne. Moduł HighGUI zapewnia elementy interfejsu użytkownika, a także funkcje przechowywania i dostępu do plików wideo i obrazów.
Biblioteka OpenCV znajduje się w sercu niektórych ambitnych projektów. Wraz z zestawem czujników, sprzętem komputerowym i specjalnie dostosowanym oprogramowaniem, zasilał mocno zmodyfikowany pojazd sportowo-użytkowy, który pokonywał 132-milowy (212 km) pustynny tor wyścigowy bez interwencji człowieka. Jednak nie wszystkie projekty, które opierają się na zasobach biblioteki, są tak praktyczne. Niektórzy członkowie ruchu kreatywnego kodowania, luźnej konfederacji ludzi, którzy postrzegają programowanie jako formę ekspresji, wykorzystali bibliotekę do tworzenia nowych form sztuki cyfrowej. Inni zhakowali istniejące urządzenia zawierające kamery i otworzyli nowe możliwości gier, interaktywnego przetwarzania, a nawet teleobecności.