学习Opencv库(一)——基本读写函数的介绍!

简介: OpenCV是一个开源的计算机视觉库,里面封装了很多图像处理方面的优秀算法:例如图片轮廓边缘检测,特征点提取…,可以在Windows,Linux,Mac等平台使用;虽然OpenCv是用 C++ 编写的,并且现在主要接口也是 C++ 语言的但,现在该库也同时提供大量面向 python、matlab以及Java。

OpenCV是一个开源的计算机视觉库,里面封装了很多图像处理方面的优秀算法:例如图片轮廓边缘检测,特征点提取…,可以在Windows,Linux,Mac等平台使用;虽然OpenCv是用 C++ 编写的,并且现在主要接口也是 C++ 语言的但,现在该库也同时提供大量面向 python、matlab以及Java。



OpenCV在python是以 cv2 库存在的,安装起来非常简单,同样是利用 pip 安装;



OpenCv在 python中的安装方法:打开命令行或者 Anaconda Prompt 输入以下命令

pip insatll opencv-python   #利用命令行命安装;
conda install opencv-python #利用 Anaconda Prompt 中进行安装

测试一下库是否安装成功,在命令行中启动 python;接着输入 import cv2 没有报错即可代表成功.

C:\Users\dell>python
Python 3.7.4 (default, Aug  9 2019, 18:34:13) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
Warning:
This Python interpreter is in a conda environment, but the environment has
not been activated.  Libraries may fail to load.  To activate this environment
please see https://conda.io/activation
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>>  

OpenC的读写函数介绍

读取图片:cv2.imread(path,flags)

path就是需要读取图片的本地位置;

第二个参数 flags 是读取方式,代表的是你所读取的图片是什么样的,这里Opencv把它分为了三类分别是-1,0,1,参数默认为1;


为 1 时,参数为 cv2.IMREAD_COLOR ,图片以RGB的方式读出;

为 0 时,参数为 cv2.IMREAD_GRAYSCALE , 图片以灰质图(黑白)的方式读出;

为 -1 时,参数为 cv2.IMREAD_UNCHANGED ,图片为 alpha 通道的方式读出;

图片展示 cv2.imshow()


cv2.imshow()含有两个参数,第一个指的是要展示图片窗口的名字,第二个就是需要展示的照片,例如:

cv2.imshow('image',img);

在展示之前可以加一行代码,用来防止图片太大,造成图片无法展示的问题:

cv2.namedWindow('window.name',cv2.WINDOW_NORMAL);
cv2.Waitkey(0);
cv2.destoryallwindows();#销毁所有已经创建的窗口;

 cv2.destorywindow(“windows_name”) * ;用来销毁特定名字的窗口,这里windows_name代表自己准备销毁窗口的名字;


图片写出 cv2.imwrite()

python 中的OpenCV库里里面含有读入、展示函数,当然也有写出函数,是以 imwrite 函数实现,具体使用方法如下:

cv2.imwrite('a.png',img);#将图片以 a.png 的形式写出,


这里的 a.png 当然也可以以路径来进行替换。

img  = cv2.imread('F:/pic_url/a.jpg',0)
img2 = cv2.imread('F:/pic_url/a.jpg',1)
cv2.namedWindow('RGB',cv2.WINDOW_NORMAL)
cv2.namedWindow('GRAY',cv2.WINDOW_NORMAL)
cv2.imshow('RGB',img2)
cv2.imshow('GRAY',img)
cv2.imwrite('F:/pic_url/a_rgb.png',img2)
cv2.imwrite('F:/pic_url/a_gray.png',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

效果图如下:

保存后的图片:

这几行代码就是对 Opencv库 读写功能的的基本总结;


首先是把 图片a.jpg 分别以 RGB 和灰质图 形式读出,并把读出的内容赋值给 img2 和 img;

创建两个窗口,分别命名为 RGB 和 GRAY ,创建形式就是以 NORMAL_WINDOW 的形式(系统自定义合适的窗口大小);


分别在 RGB 和 GRAY 窗口中展示 img2 和 img 的内容;


把 img2 和 img 的内容存入 rgb.png 和 gray.png 两张图片当中;


等待用户命令;


销毁所有已经创建的窗口;


相关文章
|
1月前
|
机器学习/深度学习 人工智能 算法
Python在计算机视觉(CV)中扮演重要角色,得益于其丰富的库如OpenCV、Pillow和Scikit-image。
【7月更文挑战第5天】Python在计算机视觉(CV)中扮演重要角色,得益于其丰富的库如OpenCV、Pillow和Scikit-image。CV涉及图像处理、模式识别和机器学习,用于图像理解和生成。Python的跨平台特性和活跃社区使其成为CV的理想工具。基本流程包括图像获取、预处理、特征提取、分类识别及图像生成。例如,面部识别通过预处理图像,使用如`cv2.CascadeClassifier`进行检测;物体检测类似,但需适应不同目标;图像生成则利用GAN创造新图像。
41 4
|
6天前
|
机器人 计算机视觉
巧用 OpenCV solvePnP() 函数完成由图像坐标系到机器人坐标系的转换(二维坐标系之间的转换)
巧用 OpenCV solvePnP() 函数完成由图像坐标系到机器人坐标系的转换(二维坐标系之间的转换)
19 2
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
OpenCV与AI深度学习之常用AI名词解释学习
AGI:Artificial General Intelligence (通用人工智能):是指具备与人类同等或超越人类的智能,能够表现出正常人类所具有的所有智能行为。又被称为强人工智能。
88 2
|
1月前
|
机器学习/深度学习 XML 计算机视觉
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,它提供了大量的函数和工具,用于处理图像和视频数据。
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,它提供了大量的函数和工具,用于处理图像和视频数据。
|
1月前
|
计算机视觉 Python
opencv 处理图像去噪的几种方法学习
OpenCV 提供了多种图像去噪的方法,以下是一些常见的去噪技术以及相应的 Python 代码示例: 均值滤波:使用像素邻域的灰度均值代替该像素的值。
14 0
|
2月前
|
Windows 计算机视觉 Linux
QtCreator 跨平台开发添加动态库教程(以OpenCV库举例)- Windows篇
该文档介绍了Qt的跨平台特性,并推荐在Windows和Linux开发中使用QtCreator。在Windows下添加动态库,可以通过Visual Studio配置.lib文件和.dll文件,或在QtCreator中使用"添加库"功能。在QtCreator中,选择库文件、包含路径,并配置Details,然后更新.pro文件,清除、qmake及构建项目。运行时确保.dll与.exe在同一目录下。
QtCreator 跨平台开发添加动态库教程(以OpenCV库举例)- Windows篇
|
3月前
|
Linux 开发工具 计算机视觉
QtCreator 跨平台开发添加动态库教程(以OpenCV库举例)- Windows篇
Qt是跨平台的开发工具,推荐使用QtCreator进行Windows和Linux开发。在Windows下,使用Visual Studio创建动态库时,需要配置.lib文件并确保运行时.dll与.exe在同一目录。在QtCreator中添加DLL动态库,可以通过右键项目,选择添加库,然后在Details界面配置库文件、包含路径和平台,最后更新PRO文件并进行清除、qmake和构建步骤。运行时同样需确保.dll文件与可执行文件在同一目录。
100 5
|
2月前
|
机器学习/深度学习 编译器 算法框架/工具
OpenCV算法库
numba是一个用于编译Python数组和数值计算函数的编译器,这个编译器能够大幅提高直接使用Python编写的函数的运算速度。
|
2月前
|
机器学习/深度学习 开发框架 TensorFlow
### 如何系统化学习OpenCV4
### 如何系统化学习OpenCV4
29 0
|
2月前
|
存储 计算机视觉
OpenCV3.1中读写图像与读写像素
OpenCV3.1中读写图像与读写像素
19 0