Skip to main content

Hướng dẫn cài đặt OpenCV trên MacOS và chạy ví dụ mẫu bằng terminal và XCode

OpenCV (Open Source Computer Vision) là thư viện mã nguồn mở chuyên xử lý, phân tích những hình ảnh từ photo và camera như nhận diện khuôn mặt, chữ số, hình học... OpenCV được phát hành dưới mã nguồn BSD license, do đó được sử dụng miễn phí trong việc nghiên cứu cũng như thương mại. Nó có những interface cho ngôn ngữ C++, C, Python và Java, do đó nó có thể chạy trên đa nền tảng như Windows, Linux, Mac OS, iOS và Android. Chi tiết các bạn có thể xem thêm trên trang của OpenCV.

Tài liệu hướng dẫn chi tiết những chức năng trong OpenCV các bạn có thể xem qua tại đây. Khi xem những hướng dẫn này các bạn cần phải chạy những đoạn code ví dụ mẫu của người ta viết để có thể hiểu rõ cách người ta thực thi công thức toán học đó thông qua code như thế nào và kết quả khi chạy ra sao thì các bạn phải build và run chương trình.

Bài này mình hướng dẫn các bạn cài thư viện OpenCV 3.1.0, build và chạy thử code ví dụ mẫu C++ từ Github OpenCV bằng terminal và XCode. Vì mình thấy trên mạng có hướng dẫn cài bản 3.0.0, nhưng mình cài thử máy tính cá nhân của mình thì gặp sự cố với ffmpeg, nếu các bạn cài bản này, nếu gặp lỗi như vậy có thể đọc tài liệu này để fix problem khi cài đặt OpenCV 3.0.0.


Hướng dẫn cài đặt OpenCV 3 trên Mac OS 10.11:

Các bạn có thể clone source code từ git hoặc có thể tải source code của OpenCV 3.1.0 về máy trước khi build và install chúng vào máy tính thông qua lệnh CMake. Các bạn có thể dùng brew cũng được nhưng phải thiết lập khác chút xíu.

Nếu các bạn clone bằng terminal xong thì nên di chuyển đến thư mục chứa git opencv, dùng lệnh checkout phiên bản release version 3.1.0 như sau:
git checkout tags/3.1.0

Theo mình thấy các bạn nên cài OpenCV bằng CMake thông qua MacPort. Nếu các bạn chưa cài MacPort thì có thể tải tại đây. Sau khi cài xong bạn mở terminal và nhập đoạn lệnh sau để cài CMake:
sudo port install cmake

Hướng dẫn build bằng CMake:

- Bạn dùng terminal cd đến thư mục opencv, và đánh những lệnh như sau:
# Tạo thư mục riêng để build opencv
mkdir build
cd build
cmake -G "Unix Makefiles" ..
- Bây giờ chúng ta bắt đầu build OpenCV bằng những lệnh:
make -j8
sudo make install

Khi cài đặt xong bạn sẽ thấy thư mục opencv trong đường dẫn usr/local/include.
hoặc dùng terminal:

Các bạn vào đường dẫn này và tải file cpp và 2 hình bên trong đó bỏ cùng 1 thư mục.

Hướng dẫn build và chạy code ví dụ viết bằng C++ dùng thư viện OpenCV bằng Terminal:

Để build bằng terminal thì bạn cần dùng pkg-config để build. Đầu tiên bạn phải chạy lệnh sau:
pkg-config --cflags --libs opencv

Bạn cd đến thư mục chứa những file đó và chạy đoạn lệnh sau:
g++ -ggdb `pkg-config --cflags --libs opencv` AddingImagesTrackbar.cpp -o AddingImagesTrackbar
./AddingImagesTrackbar
Sau khi chạy sẽ xuất hiện màn hình như sau:

Lưu ý: Nếu bạn gặp error khi build như sau:
"/usr/bin/ld: cannot find -lippicv

collect2: error: ld returned 1 exit status"
Bạn nên vào link này tải lippicv về. Sau khi tải xong giải nén và copy file .a vào thư mục "/usr/local/lib".

Hướng dẫn thiết lập XCode để viết code C++ với OpenCV:

- Bước 1: Bạn mở XCode và chọn trên thanh toolbar như: File > New > Project > OS X (Application) > Command Line Tool:

Bạn đặt tên Project và chọn ngôn ngữ là C++:

- Bước 2: Bạn copy code ví dụ vào file main.cpp thì sẽ xuất hiện error như sau:

Hiện tại bạn có thể viết code C++ trên XCode nhưng chỉ dùng thư viện mặc định. Nếu bạn muốn XCode nhận thư viện OpenCV thì phải config như sau:

- Bước 3: Bạn vào "Build Setting". Nhập "/usr/local/include" vào phần "Header Search Paths":

Nhập "/usr/local/lib" vào phần "Library Search Paths":

Copy đoạn code sau vào phần "Other Linker Flag"
-lopencv_calib3d -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videoio -lopencv_videostab

Sau đó bạn chạy build bằng XCode hoặc Command+B:

Bạn build thành công bạn muốn tìm đến thư mục build thì bạn chọn Project và trỏ đến thư mục Debug.

Nếu bạn muốn XCode tạo file build ngay tại thư mục chứa file project thì chọn XCode > Preference > Location:

Nhấn vào Advanced và chọn Legacy:

Sau đó bạn build lại project và sẽ thấy thư mục build ngay tại thư mục project, copy 2 tấm hình vào thư mục Debug và chạy file bằng lệnh "./OpenCVCpp" sẽ xuất hiện màn hình như hình sau:

Theo mình thì các bạn build những code sample của OpenCV thì dùng terminal, còn khi nào muốn viết code thì nên dùng tool XCode để viết và build và run cho thật nhanh ^^.

Chúc các bạn thành công và học OpenCV thật tốt nha.

Tài liệu OpenCV.

Tài liệu tham khảo:

- OpenCV on MacOSX.
- Compile OpenCV sample code.
Setup XCode 6.1 to work with OpenCV3 libraries
- OpenCV installation.

Comments

Popular posts from this blog

Phân biệt biến kiểu Property, Public, Protected, Private trong ngôn ngữ Objective C

- Theo kinh nghiệm làm việc của mình với các bạn trong nhóm khi lập trình Objective-C và cũng đọc qua code của những project cũ. Ít khi nào mọi người để ý và khai báo đúng với ý đồ của từng đối tượng, và vi phạm quy tắc tính đóng gói, tính bảo mật thông tin của đối tượng trong lập trình hướng đối tượng (Tham khảo lý thuyết Lập trình hướng đối tượng tại trang Wiki ). - Theo ngôn ngữ lập trình Java, người ta khuyến khích mỗi khi dùng biến kiểu public thì nên đặt 1 biến private và hỗ trợ những hàm getter/setter để truy suất biến private đó.     + Nguyên nhân họ nói là đảm bảo tính đóng gói, và nếu sau này có thay đổi gì trên biến đó bạn có thể sửa được dễ dàng, chi tiết về vấn đề này ở đây .     + Nói tóm tại thì nguyên nhân chính là có thể kiểm soát được truy xuất đến giá trị của 1 đối tượng từ bên ngoài, có thể dễ dàng mở rộng code bằng cách override lại những hàm getter/setter. - Các bạn có thể áp dụng nguyên tắc đó từ bên Java qua ngôn ngữ lập trình Object...

(Kinh nghiệm) Auto layout và Size classes trong iOS - Phần 1

Trước đây khi viết những ứng dụng chạy trên nhiều màn hình hoặc hỗ trợ màn hình xoay ngang, xoay dọc mọi người hay dùng code để có thể chỉnh được những vị trí cũng như kích thước của những đối tượng. Hoặc có thể dùng Autosizing để tự động canh chỉnh những đối tượng nhưng không tối ưu và tiện lợi cho lắm, hình minh hoạ ở dưới: Vì thế từ lúc Apple phát hành ra iPhone 5, iPhone 5s với kích thước màn hình là 4 inch, làm phát sinh thêm vấn đề " Làm thế nào ta có thể thiết kế giao diện có thể chạy được trên nhiều màn hình? " mà không làm thay đổi nhiều code để có thể dễ dàng bảo trì ứng dụng. Apple mới phát triển chức năng Auto Layout và Size Classes để thực hiện nhiệm vụ này. Nếu bạn đã quen dùng Autosizing để thiết kế giao diện thì bạn có thể vẫn sử dụng chúng. Nhưng tuỳ theo từng dự án mà khách hàng hay người PM hoặc leader của bạn muốn bạn dùng công nghệ mới Auto Layout và Size Classes   để làm layout trên iOS mà không cần dùng bất cứ đoạn code nào và chỉ viết trên 1 storyboard...

(Căn bản) Bài 1: Hướng dẫn tạo tài khoản Apple ID và iTune không cần thẻ Visa hoặc MasterCard

Nếu bạn muốn lập trình trên iOs hoặc trên MacOs thì bạn nên có tài khoản Apple ID và tài khoản iTune. Sẽ hữa ích cho bạn khi cài đặt và nân cấp chương trình XCode. Nhưng khó khăn ở chỗ nếu bạn không có thẻ Visa hoặc Master Card, mà vẫn muốn có tài khoản để có thể cài ứng dụng trên AppStore. Sau đây mình xin hướng dẫn cách tạo tài khoản mà không cần những thẻ đó và có thể tạo tài khoản trên những store ở các nước khác. Đầu tiên bạn mở chương trình iTune lên và vào tab "App Store", sau đó bạn kiếm chương trình nào Free và nhấn vào đó nó sẽ hiển thị ra màn hình như sau:    Khi đang ở màn hình này bạn nhấn vào chữ "Free" bên dưới hình sẽ hiển thị ô cho bạn nhập Apple ID và Password.Vì bạn chưa có nên hãy nhấn vào nút "Create Apple ID" để tạo tài khoản. Sau khi bạn nhấn vào nút "Create Apple ID" bạn sẽ qua màn hình như bên dưới. Tại đây bạn có thể chuyển AppStore của các nước (Vì có những chương trình chỉ cài được trên từng AppStore mỗi nước thôi) hi...