OpenCV đã khoảng từ năm 2001. Trong những ngày thư viện được xây dựng xung quanh một giao diện C và để lưu trữ hình ảnhtrong bộ nhớ, họ đã sử dụng một cấu trúc C được gọi là IplImage. Đây là một trong những bạn sẽ nhìn thấy trong hầu hết các hướng dẫn cũ hơn vàtài liệu giáo dục. Vấn đề này là rằng nó mang đến bảng tất cả minuses của ngôn ngữ C. Lớn nhấtvấn đề là việc quản lý bộ nhớ bằng tay. Nó xây dựng trên giả định rằng người sử dụng chịu trách nhiệm chăm sóccấp phát bộ nhớ và deallocation. Trong khi đây không phải là một vấn đề với chương trình nhỏ hơn, một khi cơ sở mã của bạn phát triển nósẽ là nhiều hơn nữa của một cuộc đấu tranh để xử lý tất cả điều này hơn là tập trung vào giải quyết mục tiêu phát triển của bạn.May mắn C ++ đến xung quanh và giới thiệu khái niệm của các lớp học làm cho dễ dàng hơn cho người dùng thông qua bộ nhớ tự độngquản lý (nhiều hơn hoặc ít hơn). Tin tốt lành là rằng C++ là hoàn toàn tương thích với C do đó, không có vấn đề tương thích có thể phát sinhtừ thực hiện thay đổi. Vì vậy, OpenCV 2.0 giới thiệu một giao diện C++ mới cung cấp một phương pháp mới để làmđiều đó có nghĩa là bạn không cần phải fiddle với quản lý bộ nhớ, làm cho mã của bạn ngắn gọn (ít hơn để viết, đếnđạt được nhiều hơn nữa). Nhược điểm chính của giao diện C++ là nhiều nhúng vào hệ thống phát triển lúc nàyhỗ trợ chỉ C. Vì vậy, trừ khi bạn đang nhắm mục tiêu nền tảng nhúng, có là không có điểm để sử dụng các phương pháp cũ(trừ khi bạn là một lập trình viên masochist và bạn đang hỏi cho rắc rối).Việc đầu tiên bạn cần biết về Mat là bạn không cần phải tự cấp phát bộ nhớ của nó và phát hành nóngay sau khi bạn không cần nó. Trong khi làm điều này vẫn là một khả năng, hầu hết các chức năng OpenCV sẽ phân bổ của nósản lượng dữ liệu tự động. Như một tiền thưởng tốt đẹp nếu bạn vượt qua trên một đối tượng Mat đã tồn tại, mà đã phân bổkhông gian cần thiết cho ma trận, điều này sẽ được tái sử dụng. Nói cách khác chúng tôi sử dụng ở tất cả thời gian chỉ càng nhiều bộ nhớ là chúng tôibạn phải thực hiện nhiệm vụ.Mat về cơ bản là một lớp học với dữ liệu hai phần: tiêu đề ma trận (có chứa thông tin như kích thước của ma trận,Các phương pháp được sử dụng để lưu trữ, lúc đó địa chỉ là ma trận được lưu trữ, và như vậy) và một con trỏ đến các ma trận chứa
đang được dịch, vui lòng đợi..