学习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 两张图片当中;


等待用户命令;


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


相关文章
|
6天前
|
监控 API 计算机视觉
OpenCV这么简单为啥不学——1.3、图像缩放resize函数
OpenCV这么简单为啥不学——1.3、图像缩放resize函数
50 0
|
6天前
|
存储 资源调度 算法
Opencv(C++)系列学习---SIFT、SURF、ORB算子特征检测
Opencv(C++)系列学习---SIFT、SURF、ORB算子特征检测
|
6天前
|
人工智能 Linux API
OpenCV这么简单为啥不学——1.1、图像处理(灰度图、模糊图片、GaussianBlur函数、提取边缘、边缘膨胀、边缘细化)
OpenCV这么简单为啥不学——1.1、图像处理(灰度图、模糊图片、GaussianBlur函数、提取边缘、边缘膨胀、边缘细化)
51 0
|
6天前
|
机器学习/深度学习 算法 数据可视化
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)-2
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)
108 0
|
6天前
|
机器学习/深度学习 Ubuntu Linux
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)-1
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)
64 1
|
6天前
|
计算机视觉 Python
OpenCV 库创建了一个简单的动画
OpenCV 库创建了一个简单的动画
27 2
|
6天前
|
编译器 计算机视觉 Python
pycharm配置opencv库
pycharm配置opencv库
|
6天前
|
算法 C++ 计算机视觉
Opencv(C++)学习系列---Laplacian拉普拉斯边缘检测算法
Opencv(C++)学习系列---Laplacian拉普拉斯边缘检测算法
|
6天前
|
算法 计算机视觉 C++
Opencv(C++)学习系列---Sobel索贝尔算子边缘检测
Opencv(C++)学习系列---Sobel索贝尔算子边缘检测
|
6天前
|
算法 C++ 计算机视觉
Opencv(C++)学习系列---Canny边缘检测算法
Opencv(C++)学习系列---Canny边缘检测算法