简介
本文通过OpenCV源码编译,并附带一个简单的例子。推荐使用Mac包管理器Homebrew,简单明了。本文是源码编译安装,稍微麻烦。
CMake编译安装(已安装可跳过)
CMake 3.18.1
官方地址:https://cmake.org
Github地址:https://github.com/Kitware/CMake
编译安装
下载好源码,编译安装
cd /Users/xxx/opt/CMake
mkdir install_cmake
./bootstrap --prefix=./install_cmake
make -j8
sudo make install
配置环境变量(可选)
当编译安装好之后,可以在/Users/xxx/opt/CMake/install_cmake/bin
目录发现cmake
可执行文件,如果想打开终端随时可用cmake
命令,则需要配置环境变量,否则的话直接带目录运行即可。
/Users/xxx/opt/CMake/install_cmake/bin/cmake --help
配置环境变量
sudo vim ~/.bash_profile
export PATH=/Users/wanglei/opt/CMake/install_cmake/bin:$PATH # 添加至末尾
source ~/.bash_profile
注:macOS 10.15的版本装了iTem2+zsh,直接在~/.zshrc
上加就行了,否则每次打开终端都得source ~/.bash_profile
OpenCV编译安装
OpenCV-4.4.0
官方地址:https://opencv.org/releases/
Github地址:https://github.com/opencv/opencv
编译和安装
下载好源码,打开终端
cd /Users/xxx/opt/opencv-4.4.0/
mkdir build_opencv install_opencv
cd build_opencv
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=../install_opencv ..
make -j8
make install
测试样例
编写main.cpp代码
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui.hpp>
int main(int argc, char** argv) {
if (argc != 2) {
std::cout << "Expecting a image file to be passed to program" << std::endl;
return -1;
}
cv::Mat img = cv::imread(argv[1]);
if (img.empty()) {
std::cout << "Not a valid image file" << std::endl;
return -1;
}
cv::namedWindow("Simple Demo", cv::WINDOW_AUTOSIZE);
cv::imshow("Simple Demo", img);
cv::waitKey(0);
return 0;
}
编写Makefile文件
.SUFFIXES: .cpp .o
CC=g++
SRCS = ./main.cpp
OBJS = $(SRCS:.cpp=.o)
OUTPUT = main
OPENCV_ROOT=/Users/xxx/opt/opencv-4.4.0/install_opencv
CFLAGS = -I$(OPENCV_ROOT)/include/opencv4
LIBS += -L$(OPENCV_ROOT)/lib -lopencv_imgcodecs -lopencv_imgproc -lopencv_highgui -lopencv_core
all : $(OBJS)
$(CC) -o $(OUTPUT) $(OBJS) $(LIBS)
@echo "----- OK -----"
.cpp.o :
$(CC) -O3 -std=c++11 -Wall $(CFLAGS) -o $@ -c $<
clean :
-rm -f $(OBJS)
-rm -f .core*
-rm $(OUTPUT)
编译运行
随便下载副图像test.jpg
make -j8
./main test.jpg
注:编译通过,而运行时会报错dyld: Library not loaded: @rpath/libopencv_imgcodecs.4.4.dylib
,是opencv的库没找到,需要配置环境变量。
sudo vim ~/.bash_profile
export LD_LIBRARY_PATH=/Users/xxx/opt/opencv-4.4.0/install_opencv/lib:$LD_LIBRARY_PATH # 添加至末尾
source ~/.bash_profile