欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Opencv Configuration on MacOS

程序员文章站 2024-03-23 21:45:22
...

1.下载OpenCV

  • 可以到OpenCV官网下载安装文件,根据需要下载对应的版本
  • Cmake,官网下载,然后安装,进行配置
  • 在MacOS下,Xcode的是必须安装的

Opencv安装命令

下载解压资源包后,找到一个文件目录放置,在解压好的文件如:opencv-4.3.0下创建一个新文件目录,命名为release,在终端中进入到这个文件目录,输入以下命令:

$cmake -G “Unix Makefiles” .. (如果提示权限问题,加sudo)
$make (可以加-j2;-j4;-j8等表示多线程编译)
$sudo make install

安装成功后在/usr/local/lib下会有关于libopencvXXX.dylib文件,在/usr/local/include下会有opencv4、opencv2目录
Opencv Configuration on MacOS
Opencv Configuration on MacOS

通过Homebrew安装

  1. 下载Homebrew,Homebrew是Mac上的一个包管理软件,相当于linux上的apt-get,wget等,根据Homebrew官网的教程下载不出意外是会失败的
第一步,获取install文件

通过如下代码把官网的脚本拿下来

curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install >> brew_install
第二步,更改脚本中的资源链接,替换成清华大学的镜像

就是把这两句

BREW_REPO = “https://github.com/Homebrew/brew“.freeze
CORE_TAP_REPO = “https://github.com/Homebrew/homebrew-core“.freeze

替换成

BREW_REPO = “https://mirrors.ustc.edu.cn/brew.git “.freeze
CORE_TAP_REPO = “https://mirrors.ustc.edu.cn/homebrew-core.git“.freeze

如果镜像有问题,可以换成其他的镜像源,接着执行脚本文件

ruby brew_install

出现报错是因为源不通,更换为其他的国内镜像源

git clone git://mirrors.ustc.edu.cn/homebrew-core.git/ /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core --depth=1

然后把homebrew-core的镜像地址也设为中科院的国内镜像

git remote set-url origin https://mirrors.ustc.edu.cn/brew.git

cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
# 替换核心软件仓库
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git

执行更新,成功

brew update

最后用这个命令检查无错误:

brew doctor

最后接着换源:

#替换 cask 软件仓库(提供 macOS 应用和大型二进制文件)
cd "$(brew --repo)"/Library/Taps/caskroom/homebrew-cask
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git

#替换 Bottles 源(Homebrew 预编译二进制软件包)
bash(默认 shell)用户:
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profile
source ~/.bash_profile

zsh 用户:
~ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.zshrc
~ source ~/.zshrc

执行完以上步骤,你就应该在Mac上安装好了Homebrew,并且可以用它来安装Cmake,OpenCV等

  1. 安装OpenCV
brew install opencv

经过漫长的等待,OpenCV安装完成,可以在/usr/local/Cellar/opencv/4.3.0_3/include/usr/local/Cellar/opencv/4.3.0_3/lib文件目录下分别找到头文件和库文件

  1. 在终端中运行

创建一个文件目录,创建CMakeLists.txt和main.cpp文件

CMakeLists.txt

#版本  
cmake_minimum_required(VERSION 3.15.1)   

#项目名称                                        
project( test )       

#设置OpenCV所在目录,为后面的find_package提供位置                                                      
#OpenCV_DIR为OpenCV源码编译后得到的文件夹(如上面的release目录)                   
set( OpenCV_DIR /Users/hongyi/MyServers/opencv-3.3.1/release)  

#会在OpenCV所在目录查找配置文件OpenCVConfig.cmake  
find_package( OpenCV REQUIRED )    

#向工程添加源文件                                         
add_executable( test main.cpp )    

#添加链接库                                   
target_link_libraries( test ${OpenCV_LIBS} ) 

使用Cmake --Version可以查询Cmake版本,这里需要注意的是,find_package里一定要找到OpenCVConfig.cmake

Main.cpp

#include <opencv2/opencv.hpp>  
using namespace cv;  
int main(int argc, char** argv) {  
    Mat image;  
    image = imread("/Users/..", 1);  //输入正确的图片路径  
    namedWindow("Display Image", WINDOW_AUTOSIZE);  
    imshow("Display Image", image);  
    waitKey(0);  
    return 0;  
}  

在终端运行命令:

$ cmake .
$ make
$ ./test  #生成的二进制文件的文件名
  1. 在Clion中使用

原理和在终端中运行一样,需要将新建项目里的CmakeLists.txt文件加上:

find_package(OpenCV REQUIRED)
target_link_libraries(test_opencv ${OpenCV_LIBS})
  1. 在Xcode中使用
  • 单击项目名,选择”Building Settings” -> “Search Paths”,相应位置填上相应路径,在Header Search Paths里输入: /usr/local/Cellar/opencv/4.3.0_3/include头文件路径,在Library Search Paths里输入:/usr/local/Cellar/opencv/4.3.0_3/lib库文件路径
  • 在项目下创建一个lib group,将相应的lib文件,通过”Add to Files”拷贝进去,文件在上面安装时的库文件目录下,记住替身文件不用添加(就是左下角有箭头的)

运行时出现的错误

一开始运行就出现了,如下错误:
Opencv Configuration on MacOS

大概意思就是动态库文件libopencore-amrnb.0.dylib未成功导入,于是就寻找这个文件
Opencv Configuration on MacOS
发现果然没有,这里最开始我没看仔细把libopencore-amrwb.0.dylib当成了libopencore-amrnb.0.dylib,我就很疑惑,明明有文件为什么导入不了?于是就走上了岔路…

最后发现opencore-amr是FFmpeg这个库的一项依赖,经过了解FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序,具体OpenCV为什么要导入它我也不太清楚,最后经过,重新安装依赖

$ brew install opencore-amr

于是就把libopencore-amrnb.0.dylib这个库安装好了,最后运行
Opencv Configuration on MacOS

结束语

一定要看清楚报错信息,认真查看清楚再去搜索。