2012-05-05 39 views
8

Tôi đang sử dụng OpenCV 2.3.1 trên OS X Lion trong một trong các dự án C++ của tôi. Mặc dù dự án của tôi hoạt động tốt nhưng nó phụ thuộc rất nhiều vào việc giải mã và mã hóa JPEG. Tôi muốn đạt được một tăng tốc bằng cách sử dụng libjpeg-turbo, nhưng tôi không thể tìm thấy cách chính xác để liên kết với libjpeg-turbo. Tùy thuộc vào các nỗ lực hackery của tôi và những tập tin tôi chỉnh sửa, tôi kết thúc với việc biên dịch lỗi hoặc với thư viện OpenCV vô dụng (mọi thứ biên dịch chính xác, nhưng tôi không thể mở hoặc ghi tệp JPEG, mặc dù không có lỗi xuất hiện trong dự án C++).Làm thế nào để biên dịch OpenCV bằng libjpeg-turbo?

Có ai có thể giải thích cách bạn có thể biên dịch OpenCV bằng libjpeg-turbo để giải mã/mã hóa JPEG nhanh hơn không?

Trả lời

17

Xây dựng OpenCV 2.4.0 với libjpeg-turbo bạn cần:

  1. build libjpeg-turbo như một thư viện tĩnh
  2. configure OpenCV với lệnh sau đây:

cmake -DWITH_JPEG=ON -DBUILD_JPEG=OFF -DJPEG_INCLUDE_DIR=/path/to/libjepeg-turbo/include/ -DJPEG_LIBRARY=/path/to/libjpeg-turbo/lib/libjpeg.a /path/to/OpenCV

+1

OpenCV 2.3. 1 không thể được xây dựng với libjpeg-turbo mà không cần sửa đổi nguồn. –

+0

Cảm ơn bạn và lời xin lỗi của tôi đã trả lời muộn. Mặc dù ban đầu nó không hoạt động nhưng điều này chủ yếu là do lỗi người dùng. Thời gian thực hiện tổng thể giảm gần 30% và việc mở và ghi tệp JPEG thực tế đã đạt được mức tăng trưởng đáng chú ý là 50% +. – kvaruni

Các vấn đề liên quan