0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenCV入门:了解与安装指南

新机器视觉 来源:古月居 2024-02-21 14:26 次阅读

因为最近想做图像处理、人脸检测/识别之类的相关开发,所以就开始补OpenCV的相关知识,便开个专栏用于记录学习历程和在学习过程中遇到的一些值得注意的重点和坑。

学习过程基本上也是面向官方文档和Google。

简介

OpenCV(开源的计算机视觉库)是基于BSD协议,因此它可免费用于学术和商业用途。

其提供C++,C,PythonJava接口,支持Windows,Linux,Mac OS,iOSAndroid

OpenCV致力于高效运算和即时应用开发。因其是用优化的C/C++编写的,故其可以充分利用多核处理优势。

并且还启用了OpenSL,它可以利用底层异构计算平台的硬件加速。

广泛运用在世界各地,OpenCV拥有超过4.7万人的用户社区和超过1400万的下载次数。

从互动艺术、矿山检查、网络地图到先进的机器人技术都有OpenCV的身影。

它包含了数百个计算机视觉算法。它有一个模块化的结构,囊括了几个共享的或静态的库,其中包括:

Core functionality(核心功能):一个简洁基本且模块化的数据结构,包含了多维数组(矩阵)和用于其他模块的基本功能。

Image processing(图像处理):包括线性和非线性的图像滤波、几何图像转换(缩放、仿射和透视调整)、颜色模式转换、直方图等等。

Video(视频):一个视频分析模块,其包含了运动估计、背景消除和目标跟踪算法。

Calib3d:提供基本的多视图几何算法、平面和立体影像校正、物体定位、立体通信算法和三维重建。

Features2d:显著特征探测器、描述符和描述符匹配器。

Objectect:检测对象和预定义的类的实例(例如:脸部、眼睛、杯子、人、车等等)。

Highgui(图形界面):提供一个简单易用的UI。

Video I/O:提供一个简单易用的视频捕获和编码解码界面。

GPU:来自于不同的OpenCV模块的GPU加速算法。

......一些其他的辅助模块,例如FLANN(神经网络)和Google测试封装、Python绑定等等。

下面来讲一下OpenCV的下载和安装(C++和Python3 API)。

C++

先从官网上下载好文件包:Releases - OpenCV library

https://link.zhihu.com/?target=https%3A//opencv.org/releases.html

建议选择最新的3.3.1 Win Pack。

70046fc8-d06f-11ee-a297-92fbcf53809c.jpg

下载好后,双击运行exe程序解压,选择一个解压后的目录。

(其会自动生成一个opencv目录,不需要单独再创一个opencv目录。另,不建议将其解压到C盘根目录下的Program Files或Program File (x86)目录下,可能会因系统权限导致各种问题)

7013b500-d06f-11ee-a297-92fbcf53809c.png

解压完毕后,将其写入系统的环境变量中,向Path中添加一条:"解压后opencv所在的文件夹目录opencvuildx64vc14in",

例如我将其解压在C:Leon下,则添加:C:Leonopencvuildx64vc14in。

7023113a-d06f-11ee-a297-92fbcf53809c.png

这样OpenCV3.3.1就算安装好了,接下来就在自己IDE中配置一下就行。

例如我C++开发环境是Visual Studio 2017,相应的项目创建配置流程如下:

1. 打开Visual Studio,新建一个项目(快捷键Ctrl+Shift+N),项目名自取,选择好创建目录。

703136ca-d06f-11ee-a297-92fbcf53809c.png

第一步图

2. 新建一个C++文件(快捷键Ctrl+Shift+A)。

703c7e22-d06f-11ee-a297-92fbcf53809c.png

第二步图

3. 将菜单栏下的Debug后的x86改为x64。

704e01e2-d06f-11ee-a297-92fbcf53809c.png

第三步图

4. 单击右侧窗口的Property Manager(属性管理),或者点击菜单栏中的View(视图)->Other Windows(其他窗口)->Property Manager(属性管理)。

705f947a-d06f-11ee-a297-92fbcf53809c.jpg

第四步图

5. 右键属性管理窗口中的Debug | x64,选择Property(属性),编辑包含目录。

707aef04-d06f-11ee-a297-92fbcf53809c.png

第五步图

6. 添加三个目录路径并确定。(注意路径是你opencv安装的路径)

7088edb6-d06f-11ee-a297-92fbcf53809c.png

第六步图

7. 同理,添加库目录,如图所示。

70979aaa-d06f-11ee-a297-92fbcf53809c.png

第七步图1

70a105d6-d06f-11ee-a297-92fbcf53809c.png

第七步图2

8. 添加附加依赖项。

链接器->输入->附加依赖项。

将opencv_world331d.lib键盘敲入(注意opencv版本,3.3.1是331,其他版本自行脑补)。

70bc06c4-d06f-11ee-a297-92fbcf53809c.png

第八步图1

70d653bc-d06f-11ee-a297-92fbcf53809c.png

第八步图2

9. 确定,应用。库的导入已经完成了。接下来就可以开始OpenCV相关开发了。

10. 先将以下代码(功能是显示一张图片)写入项目中的Source.cpp文件,编译链接运行(快捷键Ctrl+F5),看是否能跑起来,跑起来了说明配置成功!

#include 
using namespace cv;


int main() {
 Mat img = imread("C:\Users\11537\Desktop\新垣结衣.jpg");  //引号内选一张自己计算机内的图片的路径
 imshow("新垣结衣", img);  //打开一个窗口,显示图片
 waitKey(0);  //在键盘敲入字符前程序处于等待状态
 destroyAllWindows();  //关闭所有窗口
 return 0;
}

Python 3.x

相对于C++,Python的Opencv库导入就相对简单很多了。

一提及Python安装第三方库,大家第一时间会想到pip,的确pip是Python第三方库安装的利器。

首先我们得先安装另一个第三方库numpy,这是opencv的依赖库,没有它无法进行python-opencv开发。

很简单,保持有网状态命令行下输入pip install numpy,自动下载安装完后搞定。

比较遗憾的是默认的pip源中没有opencv这个库,不能直接pip install opencv,不过这时候我们可以下载其whl文件,下载地址:Python Extension Packages for Windows

https://link.zhihu.com/?target=https%3A//www.lfd.uci.edu/~gohlke/pythonlibs/

在页面中找到OpenCV栏,根据自己计算机中Python解释器版本选择下载文件。

70fc6ade-d06f-11ee-a297-92fbcf53809c.jpg

下载好后,通过命令行到whl文件目录下,pip install [下载的whl完整文件名]。例如pip install opencv_python-3.3.1-cp36-cp36m-win_amd64.whl

tip: 可以通过这个方法下载其他whl文件,用法一样,可以在无网状态下直接pip install whl文件导入第三方库

对于PyCharm用了Virtualenv虚拟环境的用户,可以在IDE中打开命令行界面到该项目venv/Scripts目录下./pip install numpy以及whl文件导入虚拟目录site-packages文件夹中。

同样上个测试代码(功能是显示一张图片):

import numpy as np
import cv2


def cv2_imread(file_path, flag=1):
"""解决包含中文的路径cv2.imread无法打开的问题的函数"""
  return cv2.imdecode(np.fromfile(file_path, dtype=np.uint8), flag)


if __name__ == "__main__":


  img = cv2_imread("C:\Users\11537\Desktop\长泽雅美.jpg")  #第一个参数选一张自己计算机内的图片的路径
  cv2.imshow("Nagasawa Masami", img)  #python的cv2.imshow第一个参数(即窗口名)为中文会乱码,至今未找到有效解决方案
  cv2.waitKey(0)  #在键盘敲入字符前程序处于等待状态
  cv2.destroyAllWindows()  #关闭所有窗口

小结

一次OpenCV初体验,个人觉得可能是历史遗留问题(以前的OpenCV是完全由C实现的),OpenCV的OOP特性并不强,跟Python的另一个图像库pillow相比用起来感觉有点怪。

不过不得不说,OpenCV还是挺强大的。至于C++和Python关于OpenCV接口问题,其实实现都大同小异,也没必要纠结于到底用C++好还是Python好,移植重构很容易。

审核编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像处理
    +关注

    关注

    27

    文章

    1292

    浏览量

    56757
  • 人脸检测
    +关注

    关注

    0

    文章

    80

    浏览量

    16463
  • OpenCV
    +关注

    关注

    31

    文章

    635

    浏览量

    41359
  • python
    +关注

    关注

    56

    文章

    4797

    浏览量

    84711

原文标题:OpenCV简介及安装

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    OpenCV实验大师平台安装指南

    工程与技术培训得痛点深深教育了我,让我知道“工欲善其事必先利其器”。通过一年多得努力开发与不断打磨,一款能够提升OpenCV教学质量与OpenCV工程化开发质量与速度的工具软件成功出现了。它就
    的头像 发表于 11-13 11:43 872次阅读
    <b class='flag-5'>OpenCV</b>实验大师平台<b class='flag-5'>安装</b><b class='flag-5'>指南</b>

    Redhat 9.0安装入门指南

    Redhat 9.0安装入门指南
    发表于 06-30 17:30 27次下载

    OpenCV_编程简介(入门必读)

    opencv编程简介,入门必读,适合新手简单了解opencv的相关知识。
    发表于 03-21 13:49 12次下载

    OpenCV进行基本绘图_《OpenCV3编程入门》书本配套源

    OpenCV3编程入门》书本配套源代码:用OpenCV进行基本绘图
    发表于 05-11 16:46 36次下载

    OpenCV3编程入门-源码例程全集-OpenCV开发环境的配置

    OpenCV3编程入门-源码例程全集-OpenCV开发环境的配置,感兴趣的小伙伴们可以瞧一瞧。
    发表于 09-18 16:27 20次下载

    OpenCV3编程入门-源码例程全集-点追踪

    OpenCV3编程入门-源码例程全集-点追踪
    发表于 09-18 16:38 0次下载

    OpenCV3编程入门-源码例程全集-播放视频

    OpenCV3编程入门-源码例程全集-播放视频
    发表于 09-17 22:54 18次下载

    OpenCV3编程入门-源码例程全集-人脸识别

    OpenCV3编程入门-源码例程全集-人脸识别
    发表于 09-17 22:55 2次下载

    OpenCV3编程入门-源码例程全集-模板匹配

    OpenCV3编程入门-源码例程全集-模板匹配
    发表于 09-17 22:55 4次下载

    OpenCV进行基本绘图_OpenCV3编程入门-源码例程

    OpenCV3编程入门-源码例程全集-用OpenCV进行基本绘图,感兴趣的小伙伴们可以瞧一瞧。
    发表于 09-18 17:02 3次下载

    2寸易用型指纹门禁机安装指南&入门指南 V1.0(201

    2寸易用型指纹门禁机安装指南&入门指南 V1.0(2014-6-4)
    发表于 02-15 23:45 19次下载

    opencv编译安装笔记(Linux、Ubuntu )

    本文介绍了两种opencv编译安装笔记:Linux下编译安装OpenCV和Ubuntu 下安装 Open
    发表于 12-03 10:33 5178次阅读
    <b class='flag-5'>opencv</b>编译<b class='flag-5'>安装</b>笔记(Linux、Ubuntu )

    OpenCV安装和配置教程免费下载

    本文档的主要内容详细介绍的是OpenCV安装和配置教程免费下载。
    发表于 10-18 16:56 17次下载

    如何安装和配置OpenCVOpenCV的几个小问题解答

    本文档的主要内容详细介绍的是如何安装和配置OpenCVOpenCV的几个小问题解答包括了:安装和配置OpenCV,Highgui.h与Cv
    发表于 12-17 17:25 9次下载
    如何<b class='flag-5'>安装</b>和配置<b class='flag-5'>OpenCV</b>及<b class='flag-5'>OpenCV</b>的几个小问题解答

    BorlandCBuilder6.0安装OPENCV方法

    BorlandCBuilder6.0安装OPENCV方法(新型电源技术结课论文UC3842)-文档为BorlandCBuilder6.0安装OPENCV方法详解文档,是一份不错的参考资
    发表于 09-17 15:34 9次下载
    BorlandCBuilder6.0<b class='flag-5'>安装</b><b class='flag-5'>OPENCV</b>方法