前言
在上一篇《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/ 并亲自实践。