OpenCV简介、OpenCV安装
OpenCV简介、OpenCV安装
本文目录:
零、时光宝盒
逆境清醒:https://blog.csdn.net/weixin_69553582
前几天,看到新闻,我家所在的学校(广州华南理工大学)计算机图像处理专家、计算机学院副教授、博士生导师全宇晖,于2025年1月14日在广州因病逝世,终年39岁(1985年生)。去年全宇晖才刚刚入选全球前2%顶尖科学家“年度科学影响力”榜单。
心里很难过,我不认识他,岁数上他比我小很多,能力上他比我优秀很多很多,但却比我先走了。
为此,我新开了OpenCV专栏,谨以此OpenCV专辑向他致敬。
逆境清醒
2025.1.20
此文地址:https://blog.csdn.net/weixin_69553582/article/details/145209776
一、OpenCV简介
(OpenCV标志,图片来源:截图自OpenCV官网)
OpenCV (Open Source Computer Vision Library),是计算机视觉中经典的专用库,OpenCv 可以运行在多平台之上,轻量级而且高效,由一系列 C 函数和少量 C++类构成,提供了 Python、Ruby、MATLAB 等语言的接口。
以下是OpenCV的发展历史的一些重要里程碑:
1、1999年:OpenCV项目开始,由Gary Bradsky于1999年在英特尔创立。由Intel公司的Gary R. Bradski领导。最初的目标是为智能机器人提供一个开源的计算机视觉库。
2、 2000年:OpenCV的第一个版本(1.0)发布。它包含了基本的图像处理和计算机视觉算法,如边缘检测、图像分割和特征提取等。
3、2005年,OpenCV被用于斯坦利,这辆车赢得了2005年DARPA大挑战赛。后来,在Willow Garage的支持下,它的积极开发继续进行,Gary Bradsky和Vadim Pisarevsky领导了该项目。
4、 2006年:OpenCV 1.0的稳定版发布。这个版本包含了许多新特性和改进,包括基于特征的物体检测和跟踪算法。
5、 2008年:OpenCV 2.0发布。这个版本是一个重大的里程碑,引入了C++接口和一些新的功能,如立体视觉和GPU加速。
6、 2012年:OpenCV 2.4发布。这个版本引入了更多的功能和改进,如人脸识别、行人检测和动态标记等。
7、 2015年:OpenCV 3.0发布。这个版本带来了一些重大的改变,如支持C++11标准、移动端支持和更好的性能优化。
8、2019年:OpenCV 4.0发布。这个版本引入了许多新功能,如DNN模块、改进的人脸识别和增强现实等。
OpenCV在过去几十年里一直在不断发展和改进,成为了最受欢迎的计算机视觉库之一。OpenCV现在支持与计算机视觉和机器学习相关的多种算法,并且正在日益扩展。它被广泛应用于各种领域,包括机器人技术、安防系统、图像处理和医学影像等。
OpenCV支持多种编程语言,如C++、Python、Java等,并可在Windows、Linux、OS X、Android和iOS等不同平台上使用。基于CUDA和OpenCL的高速GPU操作接口也在积极开发中。
OpenCV-Python是OpenCV的Python API,n是一个Python绑定库,旨在解决计算机视觉问题。结合了OpenCV C++API和Python语言的最佳品质。
我写的这个OpenCV系列教程,是基于Python语言的。
我个人电脑目前版本:Python 3.12.4。OpenCV 4.10.0。
二、OpenCV图像处理基础知识
OpenCV是一个开源的计算机视觉库,可以用于图像处理和计算机视觉任务。
OpenCV图像处理涉及的相关知识包括:
1. 图像加载和保存:使用OpenCV库可以读取图像文件。OpenCV可以加载和保存各种图像格式,包括常见的JPEG、PNG和BMP格式。
2. 图像显示:OpenCV可以显示图像,并提供了一些调整图像显示的功能,如调整图像大小和亮度等。
3. 图像基本操作:OpenCV提供了一系列基本的图像操作功能,包括图像剪切、复制、旋转、缩放、平移、裁剪、镜像等操作。
4. 图像滤波:OpenCV提供了各种图像滤波器,包括平滑滤波(如均值滤波、高斯滤波等)和锐化滤波(如拉普拉斯滤波、Sobel滤波等),用于图像平滑和降噪。
5. 图像边缘检测:OpenCV提供了一些边缘检测算法,如Canny边缘检测算法和Sobel边缘检测算法,用于检测图像中的边缘。通过查找图像中的轮廓,可以提取出图像中的对象形状。
6. 图像特征提取:OpenCV提供了一些常用的图像特征提取算法,如Harris角点检测算法和SIFT特征提取算法等。通过提取图像中的特征点,并使用特征描述算法(如SIFT、SURF等)和特征匹配算法(如FLANN、RANSAC等),可以实现图像的特征匹配和识别。
7. 图像变换:OpenCV提供了一些图像变换的功能,如图像的仿射变换和透视变换,用于图像的旋转、缩放和投影等。包括灰度转换、色彩空间转换(如RGB到HSV的转换)、透视变换等操作。
8. 图像分割:OpenCV提供了一些图像分割算法,如基于颜色的分割和基于边缘的分割算法,用于将图像分割为不同的区域。通过设置阈值,可以将图像分割成不同的区域,以便进行后续处理。
9. 目标检测:OpenCV提供了一些目标检测算法,如基于Haar特征的级联分类器和基于深度学习的目标检测算法,用于检测图像中的特定目标。
10. 图像配准:OpenCV提供了一些图像配准算法,如基于特征的配准和基于互信息的配准算法,用于将多幅图像对齐。
11. 图像通道操作:通过拆分和合并图像通道,可以对图像的不同通道进行独立处理。
12.图像形态学操作:包括腐蚀、膨胀、开运算、闭运算等操作,可以用来处理图像中的噪声和提取图像中的特征。
这些知识只是OpenCV图像处理中的一部分内容,OpenCV还提供了许多其他功能和算法,可以根据具体的需求进行学习和应用。通过学习和应用这些知识,可以实现各种图像处理任务,如图像增强、目标检测、目标跟踪等。
三、OpenCV-Python环境安装
请先安装和配置好python开发环境
安装 OpenCV(Python 版)前提条件:
- 安装了 Python(建议使用 Python 3.x 版本)
- 安装了 pip(Python 包管理工具)。
2.1、纯python环境下安装OpenCV
使用以下命令验证是否安装:
python -V
pip -V
如果能够正常显示版本号,说明基础环境ok
如果还未安装 Python 参考:
使用 pip 安装 OpenCV 是最简单和直接的方法,你只需要在命令行中输入以下命令:
pip install opencv-python
该命令会自动从 PyPI(Python 包索引)下载并安装 OpenCV 的 Python 版本。
如果需要额外的模块(例如 contrib 模块),可以安装 opencv-contrib-python:
pip install opencv-contrib-python
opencv-contrib-python这个版本包含了更多 OpenCV 的模块和功能,适合需要深度学习、物体识别等复杂任务的开发者。
opencv-python 和 opencv-contrib-python 包是 OpenCV 的不同版本,它们分别包含了核心模块和扩展模块,一般来说,opencv-contrib-python 包含更多功能,适合需要高级应用的用户。
带下载源安装命令(例如使用清华源):
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
安装完成后,可以通过以下代码验证 OpenCV 是否安装成功:
import cv2
print("当前Opencv版本号是:",cv2.__version__)
如果能输出了 OpenCV 的版本号,例如 我的电脑4.10.0,说明OpenCV 安装成功。
2.2、Anaconda管理环境下安装 OpenCV
如果需要安装Anaconda和相关python,请查看这篇文章:
Anaconda 2024.06-1安装设置
如果你使用 Anaconda 来管理 Python 环境,
进入你需要安装 OpenCV的虚拟环境,
如果你还没有Anaconda下的python虚拟环境,可以按以下步骤先建立一个:
(1)、创建一个新的虚拟环境(可选):
conda create -n 此处填写你的虚拟环境名称 python=python版本号
例如创建一个名字叫opencv_test的虚拟环境:
conda create -n opencv_test python=3.12
激活opencv_test环境:
conda activate opencv_test
安装 OpenCV:
conda install -c conda-forge opencv
如果只需要主模块,可以通过pip安装opencv-python
进入cmd命令行,
pip install opencv-python
如果您需要main和contrib模块,请运行pip install-opencv-contrib-python(查看opencv文档中列出的额外模块)
四、如何用OpenCV 中进行读取展示图像
不管怎么样,我们只有先获取图像之后,才能对图像进行操作处理,信息提取,结果输出,图像显示,图像保存。
OpenCV 中进行读取展示的步骤如下:
- 图像读取;
- 窗口创建;
- 图像显示;
- 图像保存;
- 资源释放。
OpenCV支持的图片格式:
- Windows位图(bmp)、
- 便携式图像格式(pbm、pgm、ppm)
- Sun光栅(sr、ras)等图像格式。
在插件的帮助下
果您自己构建库,则需要指定使用它们,但在系统默认提供的软件包中),
- 您还可以加载JPEG(JPEG、jpg、jpe)、
- JPEG 2000(jp2-在CMake中代号为Jasper)、
- TIFF文件(TIFF、tif)和便携式网络图形(png)等图像格式。
- 此外,OpenEXR也是一种可能性。
OpenCV读取图像的基本函数有 :
函数 | ||
1 | cv2.imread(filename,flags) | 从文件读取图像 |
2 | cv2.namedWindow() | OpenCV窗口创建 |
3 | cv2.imshow() | 在OpenCV窗口中显示图像 |
4 | cv2.imwrite() | 将图像写入文件 |
5 | cv2.destroyWindow() | 释放窗口 |
6 | cv2.destroyAllWindows() | 释放所有窗口 |
7 | cv2.cvtColor(img,color_change) | 对颜色维度进行转换。 |
8 | cv2.waitKey() | 等待键盘输入,若未输入,则一直等待 |
注 意:
使用OpenCV读取的图像的颜色通道为BGR(蓝绿红),Matplotlib使用的颜色通道为RGB(红绿蓝),
所以如果要正常显示图像的颜色效果,需要进行颜色通道转换。
先将OpenCV读取的BGR(蓝绿红)颜色通道的图像转换为RGB(红绿蓝)颜色通道的图像,再使用Matplotlib正确显示图像。
有关计算机图像颜色的介绍,
五、OpenCV读取图像、显示、保存的例子
一个例子,展现OpenCV读取图像、显示、保存,
运行后,
当接受键盘按键是“s"时,保存当前打开的图片名字为:“first.png";
当接受键盘按键是除了“s"外的其他按键时,退出。
相关的代码如下:
import cv2 as cv
import sys
img = cv.imread(cv.samples.findFile("images/1.png"))
if img is None:
sys.exit("不能读取图片.")
cv.imshow("逆境清醒opencv教程系列", img)
key = cv.waitKey(0)
if key == ord("s"):
cv.imwrite("first.png", img)
先有个大概的概念,下面陆续会有详细介绍,我也在学习中,有兴趣的一起了解一下吧。
下一篇请看:
OpenCV imread函数读取图像__实例详解https://blog.csdn.net/weixin_69553582/article/details/145268598
推荐阅读:
逆境清醒文章总目录表
| | |
给照片换底色(python+opencv) | 猫十二分类 | 基于大模型的虚拟数字人__虚拟主播实例 |
计算机视觉__基本图像操作(显示、读取、保存) | 直方图(颜色直方图、灰度直方图) | 直方图均衡化(调节图像亮度、对比度) |
逆境清醒
逆境清醒
2025年1月多家权威机构____编程语言排行榜__薪酬状况 | ||
| ||
【CSDN云IDE】个人使用体验和建议(含超详细操作教程)(python、webGL方向) | ||
逆境清醒
逆境清醒
| ||
逆境清醒
原文地址:https://blog.csdn.net/weixin_69553582/article/details/145209776
免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!