OpenCV là tên viết tắt của open source computer vision library – có thể được hiểu là một thư viện nguồn mở cho máy tính. Cụ thể hơn OpenCV là kho lưu trữ các mã nguồn mở được dùng để xử lý hình ảnh, phát triển các ứng dụng đồ họa trong thời gian thực.
OpenCV cho phép cải thiện tốc độ của CPU khi thực hiện các hoạt động real time. Nó còn cung cấp một số lượng lớn các mã xử lý phục vụ cho quy trình của thị giác máy tính hay các learning machine khác.
Thư viện OpenCV được phát hành với giấy phép BDS. Do đó các dịch vụ nó cung cấp là hoàn toàn miễn phí và được hạn chế tối đa các rào cản thông thường. Cụ thể, bạn được phép sử dụng phần mềm này cho cả hoạt động thương mại lẫn phi thương mại. OpenCV sở hữu giao diện thiên thiện với mọi loại ngôn ngữ lập trình, ví dụ như C++, C, Python hay Java… Ngoài ra, nó cũng dễ dàng tương thích với các hệ điều hành khác nhau, bao gồm từ Windows, Linux, Mac OS, iOS cho đến cả Android.
Kể từ lần đầu xuất hiện từ năm 1999, giờ đây OpenCV đã sở hữu đội ngũ người dùng hùng hậu, con số ước tính có thể lên tới 47.000 người. Tất cả là nhờ những ưu điểm vượt trội của OpenCV.
Thư viện Ooencv được ứng dụng vào rất nhiều trường hợp khác nhau. Như các phần mềm định vị, bản đồ nói chung, nhà cung cấp dữ liệu hình ảnh cho các app về Map, khởi tạo ra những hình ảnh 3 chiều phức tạp, tất cả những ứng dụng công nghệ như robot, xe tự lái, bảng cảm ứng thông minh…
Thư viện sử dụng nhiều ngôn ngữ lập trình phổ biến như: ngôn ngữ lập trình C++/C# ngôn ngữ lập trình Java và Python.
Và ở đây, ta sử dụng ngôn ngữ lập trình Python cho đề tài. Với phần mềm không quá phức tạp mà thiên hướng gọn nhẹ thì ngôn ngữ Python sẽ là sự lựa chọn chính xác nhất. Nhờ các câu lệnh ngắn gọn cùng thuộc tính đơn giản, Python giúp cho quá trình phát triển phần mềm OpenCV diễn ra dễ dàng hơn. Sử dụng ngôn ngữ Python sẽ là biện pháp tốt nhất cho những người không mạnh mảng lập trình. Điểm trừ của Python là vì có cấu tạo quá đơn giản nên một số tính năng cần sự phức tạp sẽ bị hạn chế.