前言
在上一篇《OpenCV 2.x —— 第一章 編譯篇(二)MacOS(High Sierra 10.13.6)下的源碼編譯》中, 我用 CLion 編譯了 Opencv2.X 的源碼,但編完後,不知道怎麼用。本篇使用命令行編譯,並實踐使用 opencv 庫的方法。
準備工作
編譯 OpenCV
第一步:配置 CMake
- 解壓源碼
- 打開 CMake程序,如圖:
- 選擇輸入輸出路徑後,點擊 configure
configure 點擊完如圖:
第二步:配置參數
靜態庫與共享庫二選一,也可以在上一步中配置不同的輸出路徑
,兩種庫都編譯一次。我只編譯了靜態庫。
1.1 編譯靜態庫(Static Libraries)的參數配置
- 不勾選以下參數:
BUILD_SHARED_LIBS
BUILD_TESTS
WITH_1394
WITH_FFMPEG
1.2 編譯共享庫(Shared Libraries)的參數配置
- 不勾選以下參數:
BUILD_TESTS
WITH_1394
WITH_FFMPEG
- 勾選
BUILD_SHARED_LIBS
2. 添加參數
CMAKE_OSX_SYSROOT
添加 SDK 路徑:/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
CMAKE_OSX_ARCHITECTURES
添加參數x86_64
,這是告訴編譯器針對當前系統編譯(原博翻譯過來就是這個意思,我不懂)
第三步:編譯
1. 再次點擊“Configure”按鈕,然後再點“Generate”
2. 完成後,打開終端
(Terminal
),在 CMake 輸出的文件夾下(就是界面第二步選擇的文件夾),執行以下命令
$ make
$ sudo make install
至此,OpenCV 的庫就編譯好了
編寫一個應用程序
本篇不詳細寫了,因爲很基礎,只貼出 CMakeLists.txt
代碼與cpp
代碼
CMakeLists.txt:
cmake_minimum_required(VERSION 2.8)
project( BlurImage )
find_package( OpenCV )
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable( BlurImage BlurImage.cpp )
target_link_libraries( BlurImage ${OpenCV_LIBS} )
main.cpp
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
using namespace std;
using namespace cv;
Mat src; Mat dst;
char window_name1[] = "Unprocessed Image";
char window_name2[] = "Processed Image";
int main( int argc, char** argv )
{
/// Load the source image
src = imread( argv[1], 1 );
namedWindow( window_name1, WINDOW_AUTOSIZE );
imshow("Unprocessed Image",src);
dst = src.clone();
GaussianBlur( src, dst, Size( 15, 15 ), 0, 0 );
namedWindow( window_name2, WINDOW_AUTOSIZE );
imshow("Processed Image",dst);
waitKey();
return 0;
}
編譯:
cmake .
make
運行:
./BlurImage image.jpg
附件:
- 使用的 imge.jpg 這個圖片來自原博,如果打不開,那就是原博掛了。
- 這是我上傳到本文中的圖片
更多OpenCV 官方的應用程序例子
在這裏:https://docs.opencv.org/2.4/doc/tutorials/tutorials.html
本文參考:https://blogs.wcode.org/2014/10/howto-install-build-and-use-opencv-macosx-10-10/ 並親自實踐。