Open Source Computer Vision (OpenCV) är ett datorprogrammeringsbibliotek med öppen källkod utvecklat för att stödja applikationer som använder datorseende. Den tillhandahåller hundratals funktioner för att fånga, analysera och manipulera visuella data och kan eliminera en del av det krångel som programmerare möter när de utvecklar applikationer som är beroende av datorseende. Delar av biblioteket tillhandahåller också funktioner för användargränssnitt och mönsterigenkänning. OpenCV har använts i både praktiska och kreativa tillämpningar inklusive självstyrande fordon och nya former av digital konst.
Programmeringsbibliotek tillhandahåller vanliga funktioner eller komplexa möjligheter som utvecklare kan använda i sina program. OpenCV-biblioteket innehåller hundratals funktioner som stöder infångning, analys och manipulering av visuell information som matas till en dator av webbkameror, videofiler eller andra typer av enheter. Enkla funktioner kan användas för att rita en linje eller annan form på en skärm, medan de mer avancerade delarna av biblioteket innehåller algoritmer för att upptäcka ansikten, spåra rörelser och analysera former. Många av detta biblioteks algoritmer är relaterade till specifik användning av datorseende, inklusive produktinspektion, medicinsk bildbehandling, robotik, ansiktsigenkänning och gestigenkänning och människa-datorinteraktion (HCI). Som ett programmeringsbibliotek med öppen källkod kan OpenCV användas med mycket få begränsningar i både kommersiella och hobbyprojekt.
Med OpenCV kan en utvecklare eliminera en del av det komplexa och tråkiga arbete som krävs för att få datorseendet att fungera tillförlitligt och fokusera på att bygga applikationen. Istället för att skapa algoritmer för ansiktsigenkänning och liknande, kan en programmerare lägga till bara några rader kod för att få ett program åtkomst till lämplig biblioteksfunktion. Det betyder också att en programmerare inte behöver behärska alla aspekter av datorseende för att bygga ett program som använder det.
Utöver kärnfunktionerna för video- och bildbehandling innehåller OpenCV sekundära moduler avsedda att stödja andra delar av en applikation. En av dessa moduler inkluderar maskininlärningsalgoritmer som kan analysera och förutsäga visuella mönster. HighGUI-modulen tillhandahåller användargränssnittselement samt funktioner för att lagra och komma åt video- och bildfiler.
OpenCV-biblioteket kan hittas i hjärtat av några olika ambitiösa projekt. Tillsammans med ett sortiment av sensorer, datorhårdvara och skräddarsydd mjukvara drev den ett kraftigt modifierat sportfordon som navigerade en 132 mil (212 km) ökenkapplöpningsbana utan mänsklig inblandning. Alla projekt som är beroende av bibliotekets resurser är dock inte så praktiska. Några medlemmar av den kreativa kodningsrörelsen, en lös sammanslutning av människor som ser programmering som en form av uttryck, har använt biblioteket för att skapa nya former av digital konst. Andra har hackat befintliga enheter som innehåller kameror och öppnat nya möjligheter för spel, interaktiv datoranvändning och till och med telenärvaro.