OpenCV学习笔记(一) OpenCV简介及安装

简介

OpenCV(开源的计算机视觉库)是基于BSD协议,因此它可免费用于学术和商业用途。其提供C++,C,Python和Java接口,支持Windows,Linux,Mac OS,iOS和Android。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

建议选择最新的3.3.1 Win Pack。

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

解压完毕后,将其写入系统的环境变量中,向Path中添加一条:"解压后opencv所在的文件夹目录\opencv\build\x64\vc14\bin",例如我将其解压在C:\Leon下,则添加:C:\Leon\opencv\build\x64\vc14\bin。

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

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

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

第一步图

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

第二步图

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

第三步图

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

第四步图

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

第五步图

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

第六步图

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

第七步图1

第七步图2

8. 添加附加依赖项。链接器->输入->附加依赖项。将opencv_world331d.lib键盘敲入(注意opencv版本,3.3.1是331,其他版本自行脑补)。

第八步图1

第八步图2

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

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

#include <opencv2/opencv.hpp>
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

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

下载好后,通过命令行到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好,移植重构很容易。

遇到问题的小伙伴可以进裙解决:361121142,里面有一些资料和热爱学习的同道中人~~

扫码也可以~

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,OpenCV是一个开源计算机视觉机器学习软件库,用于开发图像和视频处理应用程序。通过使用OpenCV,您可以读取摄像头并显示实时图像,打开视频文件或摄像头文件,并获取视频的相关信息,例如帧宽度、帧高度、帧率和总帧数。 对于学习OpenCV,你可以按照以下步骤进行: 1. 安装OpenCV库:在开始学习OpenCV之前,您需要从OpenCV官方网站下载和安装OpenCV库。根据您的操作系统和编程语言选择合适的版本。 2. 学习基本概念:熟悉OpenCV的基本概念和术语,例如图像和视频的加载、显示、保存以及常用的图像处理操作,如滤波、边缘检测和特征提取等。 3. 掌握OpenCV函数和类:深入了解OpenCV提供的函数和类,例如cv::Mat用于图像和矩阵操作,cv::VideoCapture用于读取和处理视频,以及cv::imshow和cv::waitKey等用于显示图像的函数。 4. 实践项目:通过完成一些实践项目来应用您所学到的知识。例如,利用OpenCV实现人脸检测、目标追踪、图像识别等。 5. 学习资料和资源:查找和阅读OpenCV的官方文档、教程和示例代码,参与开源社区讨论和交流,加入相关的论坛和邮件列表等。 总结起来,学习OpenCV包括安装OpenCV库、学习基本概念、掌握OpenCV函数和类、实践项目以及查找和阅读相关资料和资源。通过不断实践和学习,您将能够更好地理解和应用OpenCV库来开发图像和视频处理应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值