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

So sánh những framework hỗ trợ viết ứng dụng trên SmartPhone

Khi lập trình trên SmartPhone bạn không nhất thiết phải học những ngôn ngữ đặc thù trên từng loại hệ điều hành thì mới có thể lập trình được. Ví dụ như muốn lập trình trên iOS thì phải học ngôn ngữ Objective-C hay Swift, muốn lập trình được trên Android thì học ngôn ngữ Java, muốn lập trình trên WinPhone thì học ngôn ngữ C#. Hiện nay có rất nhiều những framework giúp đỡ cho các bạn rất nhiều khi các bạn muốn viết trên nhiều nền tảng smartphone bằng ngôn ngữ mà bạn yêu thích. Theo mình thấy thì hiện nay có 3 loại như: Native App, Hybrid Mobile App, Native Cross-Platform App. 1. Native App: là những ứng dụng sử dụng những framework và ngôn ngữ lập trình của hệ thống cung cấp sẵn. Ví dụ như bạn muốn lập trình iOS thì phải cài XCode, học ngôn ngữ Objective-C hay Swift, lập trình Android thì cài Android Studio và học ngôn ngữ Java. - Ưu điểm: Hiệu năng thực thi ứng dụng trên nền tảng nhanh và hiệu quả. Không bị phụ thuộc vào bên thứ 3. Khi phát hành ứng dụng trên những Mobile Store cũng dễ...

Hướng dẫn dùng Serverless sử dụng Lambda AWS

1. Lambda function là gì? AWS Lambda cho phép bạn chạy mã mà không cần cung cấp hay quản lý máy chủ. Bạn chỉ phải trả tiền cho thời gian xử lý thông tin đã sử dụng. Với Lambda, bạn có thể chạy mã cho gần như toàn bộ các loại ứng dụng hay dịch vụ backend – tất cả đều không cần quản trị. Chỉ cần tải đoạn mã của bạn lên và Lambda sẽ lo hết những gì cần làm để chạy và mở rộng mã của bạn với mức độ có sẵn cao. Bạn có thể thiết lập mã của bạn tự động kích hoạt từ các dịch vụ AWS khác, hoặc gọi trực tiếp từ bất cứ ứng dụng web hay di động nào. Chi phí chạy trên lambda function rẻ so với chi phí bạn mua 1 con server, duy trì và quản trị nó ( ví dụ như bạn phải xử lý bất đồng bộ những request, khi lượng user bạn tăng đột biến bạn phải có cơ chế auto scale, chứ không thì server bị sẽ bị treo, khi server bị treo bạn phải tự động khởi động lại sẽ mất thời gian,... ).

Hướng dẫn deploy 1 static web trên GitHub domain

Hiện tại GitHub đã hỗ trợ 1 tool gh-pages dùng để bạn publish 1 static web lên trên GitHub. Cái này rất tiện nếu bạn muốn làm những bản demo cho khách hàng xem và không muốn mua 1 con server riêng để deploy và mất phí duy trì. Bạn có thể xài account free của GitHub để làm việc này luôn. Để demo tool này cách xài như thế nào mình xin dùng 1 free template ' paper-dashboard-react ' bạn có thể dùng bất kỳ free template nào có sẵn trên mạng về xài và sửa chúng lại. Bạn mở terminal lên và di chuyển đến folder chứa file 'package.json', cài tool gh-pages theo chế độ development như sau: npm install gh-pages --save-dev Sau đó bạn mở file 'package.json' lên thêm giá trị 'homepage' và 2 đoạn script 'predeploy' và 'deploy' bằng gh-pages như hình sau: Bạn mở file public/index.html và sửa lại chỗ 'manifest': Sau khi sửa xong hết những chỗ này và giờ bạn muốn deploy thì chỉ cần chạy đoạn script sau: npm run deploy Khi bạn chạy lần đầu tiên ...