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


等待用户命令;


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


相关文章
|
20天前
|
监控 API 计算机视觉
OpenCV这么简单为啥不学——1.3、图像缩放resize函数
OpenCV这么简单为啥不学——1.3、图像缩放resize函数
22 0
|
1月前
|
openCL 开发工具 C语言
OpenCV 图像处理学习手册:6~7
OpenCV 图像处理学习手册:6~7
60 0
|
1月前
|
存储 编解码 算法
OpenCV 图像处理学习手册:1~5
OpenCV 图像处理学习手册:1~5
20 0
|
4月前
|
监控 计算机视觉 Python
用Python和OpenCV库实现识别人物出现并锁定
用Python和OpenCV库实现识别人物出现并锁定
87 0
|
4月前
|
计算机视觉
OpenCV-图像翻转函数cv::filp
OpenCV-图像翻转函数cv::filp
|
20天前
|
人工智能 Linux API
OpenCV这么简单为啥不学——1.1、图像处理(灰度图、模糊图片、GaussianBlur函数、提取边缘、边缘膨胀、边缘细化)
OpenCV这么简单为啥不学——1.1、图像处理(灰度图、模糊图片、GaussianBlur函数、提取边缘、边缘膨胀、边缘细化)
25 0
|
4月前
|
计算机视觉 C++
OpenCV-计时函数cv::getTickCount&cv::getTickFrequency
OpenCV-计时函数cv::getTickCount&cv::getTickFrequency
|
20天前
|
监控 算法 Serverless
OpenCV这么简单为啥不学——1.12、使用ssim函数对两张照片进行相似度分析
OpenCV这么简单为啥不学——1.12、使用ssim函数对两张照片进行相似度分析
21 0
|
20天前
|
监控 API 计算机视觉
OpenCV这么简单为啥不学——1.6、图像旋转与翻转(rotate函数、imutils环境安装、imutils任意角度旋转)
OpenCV这么简单为啥不学——1.6、图像旋转与翻转(rotate函数、imutils环境安装、imutils任意角度旋转)
20 0
|
20天前
|
监控 API 计算机视觉
OpenCV这么简单为啥不学——1.4、基础标识绘制(绘制线line函数、rectangle函数绘制四边形、circle函数绘制圆形、putText函数绘制文字、putText绘制中文文字)
OpenCV这么简单为啥不学——1.4、基础标识绘制(绘制线line函数、rectangle函数绘制四边形、circle函数绘制圆形、putText函数绘制文字、putText绘制中文文字)
17 0

热门文章

最新文章

相关产品

  • 云迁移中心