Ngoài ra còn 1 lựa chọn khác là sử dụng file MERGEVEC.EXE trên nền tảng Windows. Nhưng đối với những ai xài MAC thì sẽ rất bất tiện vì cần phải có 1 máy (ảo) chạy Windows và chuyển đổi qua lại chỉ để làm 1 công việc: merge các file .vec lại với nhau.
Bài viết này sẽ hướng dẫn chi tiết cách build file MERGEVEC trên MAC OS Mountain Lion.
Install PKG-CONFIG
Đây là 1 bước bắt buộc để có thể compile được file MERGEVEC.CPP thành file chạy MERGEVEC. Các bạn có thể kiểm tra máy mình đã có cài PKG-CONFIG chưa bằng cách gõ lệnh sau vào Terminal:
pkg-config --cflags opencv
Nếu kết quả nhận được là -I/usr/local/include/opencv -I/usr/local/include hoặc 1 đường dẫn tương tự thì máy bạn đã có PKG-CONFIG rồi. Nhưng nếu kếu quả nhận được là -bash: pkg-config: command not found thì bạn phải install PKG-CONFIG bằng cách cách gõ lệnh sau vào Terminal:
sudo port install pkgconfig
Thêm đường dẫn thư viện OpenCV vào PKG-CONFIG
Bước kế tiếp, chúng ta sẽ kiểm tra xem thư viện OpenCV đã được link với PKG-CONFIG chưa bằng cách gõ lệnh sau vào Terminal
pkg-config --cflags --libs opencv
Nếu kết quả nhận được là
-I/opt/opencv/include/opencv -I/opt/opencv/include -L/opt/opencv/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann
hoặc các đường dẫn tương tự thì chúng ta có thể BỎ QUA bước này và tiếp tục bước tiếp theo. Nhưng nếu kết quả là
Package opencv was not found in the pkg-config search path. Perhaps you should add the directory containing `opencv.pc' to the PKG_CONFIG_PATH environment variable No package 'opencv' found
thì chúng ta phải add thư viện OpenCV vào PKG-CONFIG bằng cách gõ câu lệnh sau vào Terminal
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
Lưu ý: Đối với MAC OS 10.8 và OpenCV 2.4.3 thì đường dẫn là như trên. Chúng ta cần chú ý thư mục này phải chứa file "opencv.pc". Trên máy các bạn có thể là đường dẫn khác, nhưng bắt buộc phải là đường dẫn chỉ đến thư mục chứa file OPENCV.PC.
Compile MERGEVEC .CPP
OK, bước kế tiếp chúng ta sẽ biên dịch file này. Trong Terminal, chuyển đến thư mục OpenCV Source mà lúc chúng ta install OpenCV đã down về và giải nén ra.
Chuyển tiếp đến thư mục apps/haartraining trong thư mục OpenCV
cd apps/haartraining/
Copy file MERGEVEC.CPP vào thư mục này. Trong thư mục này cũng có 1 số file .h như _cvcommon.h, _cvhaartraining.h, cvclassifier.h, cvhaartraining.h. Chúng ta cần đảm bảo các file này đã được include trong thư viện OpenCV tại đường dẫn /usr/local/include/opencv. Nếu trong thư mục này không có các file đó, hãy copy vào.
Sau đó chúng ta sẽ gõ câu lệnh sau vào Terminal
g++ `pkg-config --cflags opencv` `pkg-config --libs opencv` -o mergevec mergevec.cpp cvboost.cpp cvcommon.cpp cvsamples.cpp cvhaarclassifier.cpp cvhaartraining.cpp
Sau khi compile, chúng ta sẽ có file MERGEVEC.
Tích hợp MERGEVEC vào thư viện OpenCV
Tới bước này chúng ta đã có thể sử dụng file MERGEVEC trên để merge các file .vec. Tuy nhiên mỗi lần như vậy, chúng ta phải copy file MERGEVEC vào thư mục chứa các file sample.vec. Bây giờ chỉ cần copy file MERGEVEC vào thư mục /usr/local/bin thì chúng ta có thể gọi lệnh MERGEVEC từ bất kỳ thư mục nào và không cần copy file này theo các file sample.vec nữa.
Chúc các bạn thành công. Các bạn có thể download file MERGEVEC đã được compile với OpenCV 2.4.3 trên MAC OS Mountain Lion ở bên dưới.
mergevec.zip |
http://note.sonots.com/SciSoftware/haartraining/mergevec.cpp.html
http://stackoverflow.com/questions/8394678/compiling-a-basic-opencv-program-on-mac-os-x-10-7
http://stackoverflow.com/questions/8274860/compiling-a-project-based-on-opencv-and-ros-in-ubuntu
http://stackoverflow.com/questions/6079504/cannot-compile-mergevec-cpp-from-haartraining-tutorial
http://cduu.wordpress.com/2011/11/26/install-pkg-config-on-mac-os-x/
http://answers.opencv.org/question/1162/installation-steps-opencv-242-mac-osx/