Mac上的OpenCV开发环境搭建

一、下载并配置CMake

1、点击官网下载Mac版的CMake v3.12.0-rc1,可能需要qiang,读者自行解决!!!

Mac上的OpenCV开发环境搭建_第1张图片
01.png

安装完成后,命令行输入:

cmake --version

可输出如下,则说明安装完成.

cmake version 3.12.0-rc1

二、安装OpenCV

通过网上查找,很多朋友官网解决了,但是为了方便,推荐使用homebrew进行快速安装,直接输入以下命令:

brew install opencv

由于文件比较大,大约200M~,需要耐心等待...

出现以下提示,则说明已经安装完成:

Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/opencv-3.4.1_5.high_sierra.bottle.2.tar.gz
Already downloaded: /Users/XWH/Library/Caches/Homebrew/opencv-3.4.1_5.high_sierra.bottle.2.tar.gz
==> Pouring opencv-3.4.1_5.high_sierra.bottle.2.tar.gz
  /usr/local/Cellar/opencv/3.4.1_5: 600 files, 214.8MB

当然也可以通过以下命令查看是否存在:

brew list
Mac上的OpenCV开发环境搭建_第2张图片
02.png

三、通过CMake Demo进行测试是否安装成功.

1、新建opencv文件夹 点击下载Demo

2、在opencv下放入一个名为happy.jpg图片

3、在opencv下新建CMakeLists.txtcMake文件

#版本  
cmake_minimum_required(VERSION 2.8)   
  
#项目名称                                        
project( test )       
  
#设置OpenCV所在目录,为后面的find_package提供位置                                                      
#OpenCV_DIR为OpenCV源码编译后得到的文件夹(如上面的release目录)                   
set( OpenCV_DIR )  
  
#会在OpenCV所在目录查找配置文件OpenCVConfig.cmake  
find_package( OpenCV REQUIRED )    
  
#向工程添加源文件                                         
add_executable( test ./main.cpp )    
  
#添加链接库                                   
target_link_libraries( test ${OpenCV_LIBS} )  

4、在opencv下新建main.cpp源文件

#include   
using namespace cv;  
int main(int argc, char** argv) {  
    Mat image;  
    image = imread("./happy.jpg", 1);  
    namedWindow("Display Image", WINDOW_AUTOSIZE);  
    imshow("Display Image", image);  
    waitKey(0);  
    return 0;  
}  

5、在opencv下新建cmake_test.sh脚本文件

cmake .  
make  
./test  

该文件通过以下命令赋予可执行权限:

chmod +x cmake_test.sh

6、以上步骤完成后,可进行测试

./cmake_test.sh 

终端输出结果如下:

-- Configuring done
-- Generating done
-- Build files have been written to: /Users/XWH/Downloads/opencv2.0
[100%] Built target test
^CXWH-MBP:opencv2.0 XWH$ ./cmake_test.sh 
-- The C compiler identification is AppleClang 9.1.0.9020039
-- The CXX compiler identification is AppleClang 9.1.0.9020039
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found OpenCV: /usr/local (found version "3.4.1") 
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/XWH/Downloads/opencv2.0
Scanning dependencies of target test
[ 50%] Building CXX object CMakeFiles/test.dir/main.cpp.o
[100%] Linking CXX executable test
[100%] Built target test

并附有一张图片输出!!!

Mac上的OpenCV开发环境搭建_第3张图片
happy.jpg

可能遇到的问题,错误输出如下:

CMake Warning (dev) at CMakeLists.txt:15 (add_executable):
  Policy CMP0037 is not set: Target names should not be reserved and should
  match a validity pattern.  Run "cmake --help-policy CMP0037" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.

  The target name "test" is reserved or not valid for certain CMake features,
  such as generator expressions, and may result in undefined behavior.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring done
-- Generating done
-- Build files have been written to: /Users/cbuild/Downloads/opencv2.0
[100%] Built target test
dyld: Library not loaded: /usr/local/opt/tbb/lib/libtbb.dylib
  Referenced from: /usr/local/opt/opencv/lib/libopencv_stitching.3.4.dylib
  Reason: image not found
./cmake_test.sh: line 3: 68355 Abort trap: 6           ./test

解决方法:
1、首先安装tbb

brew install tbb

输出如下:

Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> Updated Formulae
abcm2ps                         heroku                          openh264                        solr                            vagrant-completion              yq
armadillo                       i2p                             phoronix-test-suite             tkdiff                          webpack                         znapzend

Error: Could not link:
/usr/local/etc/bash_completion.d/brew

Please delete these paths and run `brew update`.
Error: Failed to link all completions, docs and manpages:
  Permission denied @ rb_file_s_symlink - (../../../Homebrew/completions/zsh/_brew_cask, /usr/local/share/zsh/site-functions/_brew_cask)
Warning: tbb 2018_U5 is already installed, it's just not linked
You can use `brew link tbb` to link this version.

由结果查看,可得知,已经安装tbb,只是没有成功link上.需要执行以下命令:

brew link tbb

输出如下,说明成功link:(遇到其它的类似问题同样处理,不知道各位有没有一劳永逸的方式,库太多会手残的)

Linking /usr/local/Cellar/tbb/2018_U5... 18 symlinks created

你可能感兴趣的:(Mac上的OpenCV开发环境搭建)