写点什么

OpenCV 学习(二):环境搭建

用户头像
轻口味
关注
发布于: 刚刚

日常开发主要是用 MacOS,今天介绍下 Mac 下 OpenCV 开发环境搭建。

1. 源码方式编译

执行下列命令编译安卓 OpenCV 库:


git clone https://github.com/opencv/opencv.gitgit clone https://github.com/opencv/opencv_contrib.gitcd~ / opencvmkdir buildcd buildcmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..make -j6#并行运行6个作业sudo make install
复制代码


安装好 OpenCV 后,在/usr/local/lib下能看到这样的文件这说明已经安装成功了


上述是最新版本 OpenCV 编译命令。OpenCV2.0 和 3.0 编译命令略有不同:


opencv2 安装


下载 OpenCV2: 2.4.13.6


mkdir buildcd buildcmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv/opencv2 ..make -j8sudo make install
复制代码


opencv3 安装


mkdir buildcd buildcmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv/opencv3 -D BUILD_opencv_world=ON -D WITH_GSTREAMER=OFF -D OPENCV_ENABLE_NONFREE=ON ..make -j8sudo make install
复制代码


查看编译安装的库:


ls /usr/local/opencv3/liblibopencv_calib3d.3.4.12.dylib    libopencv_imgcodecs.3.4.dylib     libopencv_stitching.dyliblibopencv_calib3d.3.4.dylib       libopencv_imgcodecs.dylib         libopencv_superres.3.4.12.dyliblibopencv_calib3d.dylib           libopencv_imgproc.3.4.12.dylib    libopencv_superres.3.4.dyliblibopencv_core.3.4.12.dylib       libopencv_imgproc.3.4.dylib       libopencv_superres.dyliblibopencv_core.3.4.dylib          libopencv_imgproc.dylib           libopencv_video.3.4.12.dyliblibopencv_core.dylib              libopencv_ml.3.4.12.dylib         libopencv_video.3.4.dyliblibopencv_dnn.3.4.12.dylib        libopencv_ml.3.4.dylib            libopencv_video.dyliblibopencv_dnn.3.4.dylib           libopencv_ml.dylib                libopencv_videoio.3.4.12.dyliblibopencv_dnn.dylib               libopencv_objdetect.3.4.12.dylib  libopencv_videoio.3.4.dyliblibopencv_features2d.3.4.12.dylib libopencv_objdetect.3.4.dylib     libopencv_videoio.dyliblibopencv_features2d.3.4.dylib    libopencv_objdetect.dylib         libopencv_videostab.3.4.12.dyliblibopencv_features2d.dylib        libopencv_photo.3.4.12.dylib      libopencv_videostab.3.4.dyliblibopencv_flann.3.4.12.dylib      libopencv_photo.3.4.dylib         libopencv_videostab.dyliblibopencv_flann.3.4.dylib         libopencv_photo.dylib             libopencv_world.3.4.12.dyliblibopencv_flann.dylib             libopencv_shape.3.4.12.dylib      libopencv_world.3.4.dyliblibopencv_highgui.3.4.12.dylib    libopencv_shape.3.4.dylib         libopencv_world.dyliblibopencv_highgui.3.4.dylib       libopencv_shape.dylib             pkgconfiglibopencv_highgui.dylib           libopencv_stitching.3.4.12.dylib  python2.7libopencv_imgcodecs.3.4.12.dylib  libopencv_stitching.3.4.dylib
复制代码

2. Brew 工具安装

可以通过brew search opencv:


$ brew search opencvhomebrew/science/opencv
复制代码


安装后路径是:/usr/local/opt/opencv3,我们可以设置一个 OPENCV3_HOME 环境变量,方便以后快速打开这个文件夹。在 lib 目录下是 opencv 的库,在 include 目录下包含了两个子目录:opencv 和 opencv2,opencv 里面包含了 opencv1.x 的核心头文件,opencv2 安装模块功能组织,包括核心模块、图像处理模块、2D 功能模块、高层 GUI 图像用户界面模块、机器学习模块等。

3. XCode 环境搭建

打开 Xcode,新建一个 command line 工程:注意语言选择 C++。 接下来先来配置 xcode 再来写代码。 最左边选中工程,然后右边选中 Targets,再 BuildSettings 下,右边搜索框里输入 search,找到 Search Paths 设置项。在 Header Search Paths 里输入:/usr/local/include 在 Library Search Paths 里输入:/usr/local/lib


接着在 Build Phases 里找到 Link Binary With Libraries,点击+号 ,选择 add other,然后按下/键,输入 lib 的路径/usr/local/lib,然后就是选择 OpenCV 的库了,用哪个添加哪个, 在 main.cpp 里输入以下内容,实现显示一张照片及显示灰度化后的:


#include <iostream>#include <opencv2/opencv.hpp>using namespace cv;using std::string;

int main(int argc, const char * argv[]) { string path = "./test.jpg"; Mat image = imread(path); namedWindow("origin"); imshow("origin", image); Mat gray; cvtColor(image, gray, COLOR_RGBA2GRAY); namedWindow("gray"); imshow("gray", gray); waitKey(0);
return 0;}
复制代码

4. python 环境搭建

python 可以使用 pip 工具安装:


pip install --upgrade setuptoolspip install numpy Matplotlibpip install opencv-python
复制代码


pencv 环境已经整好,就是这么简单。只需要 numpy、Matplotlib、opencv-python 三个包,都不大很快就可以下好

5. python 测试代码

import cv2import numpy as nplenna = cv2.imread("2.jpeg")row, col, channel = lenna.shapelenna_gray = np.zeros((row, col))for r in range(row):    for l in range(col):        lenna_gray[r, l] = 1 / 3 * lenna[r, l, 0] + 1 / 3 * lenna[r, l, 1] + 1 / 3 * lenna[r, l, 2]
cv2.imshow("lenna_gray", lenna_gray.astype("uint8"))if cv2.waitKey()
复制代码


6. 总结

本文介绍了 OpenCV C++开发环境和 Python 开发环境的搭建。C++可以使用源码编译方式或者 Brew 方式安装;Python 可以使用 pip 安装 opencv 库。


本文还介绍了几个 OpenCV 简单的接口:


  1. imread:解析图片问 OpenCV Mat 结构;

  2. imshow:显示图像数据;

  3. cvtColor:图像转换。


从 C++和 Python 示例看,两种语言 API 都很类似。

发布于: 刚刚阅读数: 2
用户头像

轻口味

关注

🏆2021年InfoQ写作平台-签约作者 🏆 2017.10.17 加入

Android音视频、AI相关领域从业者,开源RTMP播放器:https://github.com/qingkouwei/oarplayer

评论

发布
暂无评论
OpenCV学习(二):环境搭建