前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenCV-加载和保存图片

OpenCV-加载和保存图片

作者头像
触摸壹缕阳光
发布2019-11-12 21:29:55
1.3K0
发布2019-11-12 21:29:55
举报

OpenCV中有很方便的加载保存图片的函数,这里总结一下,通过本小节你可以学到下面三个函数:

  1. cv.imread(),加载图片;
  2. cv.imshow(),显示图片;
  3. cv.imwriter(),保存图片;

首先准备一张图片,命名为“my_love.jpg”

01

cv.imread()

使用cv.imread()函数加载图片非常简单,只需要指定对应的图片路径即可,此时需要注意的是cv.imread()函数返回的是ndarray数组类型,即通过ndarray数组表示的像素点。

输出结果:

<class 'numpy.ndarray'>

通过图片文件路径加载图片将图片转换为ndarray数组,此时我们就可以通过获取ndarray数组属性来得到图片信息。下面构造获取图片信息的函数:

完整的代码:

输出结果:

<class 'numpy.ndarray'>图像类型: <class 'numpy.ndarray'>图像长*宽*通道数: (640, 640, 3)图像长宽通道数相乘所得值,所有像素点个数: 1228800图像像素值类型: uint8

02

cv.imshow()

上一小节介绍了cv.imread()将指定路径中的图片文件加载,OpenCV将图片转换成了ndarray数组,其中数组中的每一个元素都表示图片中的一个像素点,有时候我们需要将加载进来的图片(此时是ndarray数组)显示出来。

但是当你执行这段代码的时候,屏幕会一闪而过,此时我们需要使用waitKey函数,注意此时waitKey函数在图像和视频中应用含义是不一样的,下面先以图像角度来介绍waitKey函数,后面介绍视频读写的时候在介绍在视频中应用waitKey函数的含义。具体的函数定义如下:

delay延迟的意思,delay是一个整数类型,既然是整数类型,无非就是:

  1. >0,表示图像显示多长时间,单位为ms,过了delay数个ms后,窗口自动关闭;
  2. <0,表示只有键盘输入才能结束窗口,否则不会关闭窗口;
  3. =0,表示只有键盘输入才能结束窗口,否则不会关闭窗口;

其实还是很简单的,注意waitKey函数还有返回值。从上面可以看出,delay分成两种情况:

  1. >0,此时的返回值必为-1;
  2. ≤ 0,此时返回值为输入键盘对应的值,在电脑中每一个键盘都会对应着一个值,比如"Esc"对应着数字27。因此当我们delay设置为 ≤0 的时候,按下"Esc"键,waitKey()将返回整数27。

显示效果:

当按下"Esc"的时候,控制台会打印27。

03

cv.imwrite()

使用cv.imwrite()函数保存处理后的图片,和加载图片一样简单。我们直接使用即可,为了效果明显,这里使用cv.cvtColor()函数,你可以简单理解成对图像做颜色上的变换,第一参数为ndarray数组图片,第二个参数就是指定图片做何种变换,里面还有其他的一些属性可以尝试。

打开beauty.jpg图片:

接下来做一个简单的总结:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI机器学习与深度学习算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档