Cài đặt thư viện Boost, OpenCV và MS Visual Studio C++ trên x64 Windows

Bài này mang tính chất thực hành ngắn gọn giúp các bạn có thể thực hiện một cách nhanh chóng qua từng bước.

Yêu cầu: (yêu cầu này gần như là tương tự với các phiên bản khác nhau)

  • Windows 64bit, ở đây mình dùng Windows 10 (Windows 7 và 8 cũng OK)
  • Visual Studio 2012 (mình đã thử với ver. 2008 cũng OK!)
  • OpenCV 3.0.0 (phiên bản cũ hơn cũng không sao, mình đã thử với ver.2.4.10)
  • Boost Library 1.59.0 và mới hơn (tác giả đã thử cả với phiên bản 1.57.0)

Cài đặt VS2012 (cái này thì không cần hướng dẫn nhỉ?!). Lưu ý: Ở phiên bản cũ hơn (2008), nếu không là phiên bản professional trở lên thì không thể bổ sung thêm thư viện (ví dụ với phiên bản thử nghiệm hoặc phiên bản dành cho sinh viên học tập).

Cài đặt OpenCV

Bạn có thể đọc bài dịch từ trang chủ OpenCV.org tại đây. Đây là bài hướng dẫn và giải thích rất đầy đủ và chi tiết, tuy nhiên nó… hơi dài. Trong trường hợp bạn muốn nhanh chóng thực hiện thì bạn có thể bỏ qua và thực hiện luôn theo những bước hướng dẫn dưới đây.

  • Tải thư viện OpenCV về
  • Giải nến vào một thư mục, ví dụ, mình giải nén vào C:/opencv
  • Bổ sung vào System Variable biến OPENCV_DIR với giá trị là c:\opencv\build\x64\vc11 và System Path của hệ thống: %OPENCV_DIR%\bin
  • Mở VS2012 và tạo một Solution Win32 C++ trống (empty) với tên gọi là “Test” chẳng hạn
  • Nhấn chuột phải vào Solution ‘Test’, chọn Configuration Manager bên góc trên phải. Chọn Active solution platform > New và thay Platform từ ARM sang x64. Lưu thay đổi, quay trở lại Property Manager bạn sẽ thấy 2 thư mục thả xuống là Debug và Release cho phiên bản x64comfiguration_manager
    property_manager
  • Click chuột phải vào Sub Solution “Test” vừa tạo trong thẻ Solution Explorer để mở Property Pages
  • Chọn chế độ Debug
    debug_mode
    s
    au đó thự hiện 3 bước sau:

    • Trong C/C++ / General / Additional Include Directories, bổ sung
      $(OPENCV_DIR)\..\..\include
      include_directory
    • Trong Linker / General / Additional Library Directories bổ sung
      $(OPENCV_DIR)\lib
      add_library_directory
    • Trong Linker / Input / Additional Dependencies với Configuration = Active (debug), bổ sung
      opencv_ts300d.lib
      opencv_world300d.lib
      linker_add_dependencies
  • Chọn chế độ Release và thực hiện tương tự 3 bước ở trên, riêng bước thứ 3 thì bỏ chữ “d” đi để chọn 2 file:
    opencv_ts300.lib
    opencv_world300.lib
    release_mode

Bây giờ, dự án (project) của bạn đã có thể chạy với thư viện OpenCV. Để kiểm tra, ấn chuột phải vào thư mục Source và chọn Add File, chọn file C/C++ với tên mặc định là Source.cpp và bổ sung đoạn code sau:

#include <cstdio>
#include <opencv2\opencv.hpp>

void main() {
std::cout << “ver ” << CV_VERSION << std::endl;
}

Build và chạy thử, nếu không xảy ra lỗi tức là bạn đã thành công trong việc cài đặt thư viện OpenCV cho project C/C++ 64bit.

Cài đặt Boost

  • Tải về và giải nén thư viện Boost vào trong BOOST_DIR
  • Nhấp đúp chuột vào tập tin bootstrap.bat để xuất ra tập tin bjam.exe (và b2.exe…) trong cùng một thư mục
  • Mở MS Visual Studio với vai trò Administrator. Vào – VS2012 > Tools > Visual Studio Command Prompt
  • Tìm đến thư mục vừa giải nén thư viện Boost. và thực hiện lênh:
    bjam --build-type=complete toolset=msvc address-model=64 stage
    Nó sẽ mất khá nhiều thời gian, với mình nó vào khoảng 30 phút cho Virtual Machine Win7 x64 2Gb RAM, 15 phút cho Win8 x64 12Gb RAM.
    bjam_boost
  • Click chuột phải vào Sub Solution (tên của dự án) để mở Trang Thuộc tính Property Pages lần nữa và bổ sung vào
    Include Directories += BOOST_DIR
    Library Directories += BOOST_DIR/stage/lib
    Trong trường hợp của mình thì thư mục BOOST_DIR ở đây tương ứng với C:/boost_1_59_0, và đường dẫn này được lưu trong biến môi trường BOOST_DIR.
    vs_boost_config

Như vậy là xong! Chúc mừng bạn đã cài đặt thành công thư viện Boost.

Kiểm tra kết quả

Bây giờ bạn có thể viết một vài đoạn code để kiểm tra xem các thư viện OpenCV và Boost hoạt động như thế nào.

Hãy thêm file main.cpp vào thư mục Source Files Folder của dự án của chúng ta với đoạn code sau:

[cpp]

#include <opencv2\opencv.hpp>
#include <boost\regex.hpp>
using namespace cv;
using namespace std;

int main(int argc, const char** argv) {

std::string line;
boost::regex pat( “^Subject: (Re: |Aw: )*(.*)” );

//while (std::cin) {
std::getline(std::cin, line);
boost::smatch matches;
if (boost::regex_match(line, matches, pat))
std::cout << matches[2] << std::endl;
//}

Mat img = imread(“1.jpg”, CV_LOAD_IMAGE_UNCHANGED);
if (img.empty()) {

cout << “Error: Image cannot be loaded…!” << endl;
system(“Pause”); //wait for a key pressed
return -1;

}

namedWindow(“MyWindow”, CV_WINDOW_AUTOSIZE);
imshow(“MyWindow”, img);
waitKey(0);
destroyWindow(“MyWindow”);

return 0;

}

[/cpp]

Biên dịch và Chạy ví dụ đơn giản này (đừng quên bổ sung ảnh 1.jpg vào thư mục của chương trình). Gõ bất cứ thứ gì bạn muốn để thấy thư viện Regex của Boost làm việc, sau đó chương trình sẽ hiển thị ảnh sử dụng thư viện OpenCV.

test_run


Note:

Bạn có thể cần phải vào Configuration Properties->C/C++->PreProcessor để bổ sung thêm:
_WIN32_WINNT=0x0501

Nếu bạn gặp thông báo Cannot find or open the PDB file khi biên dịch như hình dưới:

cannot_find_open_pdb_file_

lúc đó, bạn có thể vào TOOLS/Options/Debugging/General và chọn Load dll exports (Native only):

cannot_find_open_pdb_file

 

 

Tham khảo:

  1. http://astra.ua.ac.be/wiki/index.php/How_to_build_Boost_libraries
  2. http://wiki.thedarkmod.com/index.php?title=Compile_the_static_Boost_Libraries_in_Windows


Mạng Ký Giả: Cuộc thi viết với chủ đề Việt Nam - Đất nước - Con người

 




Bài liên quan

Có 1 phản hồi cho bài viết “Cài đặt thư viện Boost, OpenCV và MS Visual Studio C++ trên x64 Windows”:

  1. Hoang Bao Han viết:

    bạn ơi mình đang làm đồ án về điều khiển chuột bằng mắt…cài đặt phần mềm boot có tác dụng gì vây?

Trả lời Hoang Bao Han Hủy

Email của bạn sẽ không được hiển thị công khai.

Cùng chủ đề