python opencv 实现读取、显示、写入图像的方法


Posted in Python onJune 08, 2020

 opencv是一个强大的图像处理和计算机视觉库,实现了很多实用算法,值得学习和深究下。

opencv包安装

·

这里直接安装opencv-python包(非官方): pip install opencv-python

官方文档:https://opencv-python-tutroals.readthedocs.io/en/latest/

1、读取图像

import cv2
image=cv2.imread("dog2.jpg",1)

说明:

第二个参数是一个标志,它指定了读取图像的方式。

  • cv.IMREAD_COLOR: 加载彩色图像。任何图像的透明度都会被忽视。它是默认标志。
  • cv.IMREAD_GRAYSCALE:以灰度模式加载图像
  • cv.IMREAD_UNCHANGED:加载图像,包括alpha通道

注意除了这三个标志,你可以分别简单地传递整数1、0或-1。

即使图像路径出现了错误,也不会报错,而是print(image)会输出None。

2、显示图像

cv2.imshow("image",image)
cv2.waitKey(0)
cv2.destroyAllWindows()

说明:

使用函数cv.imshow()在窗口中显示图像。窗口自动适合图像尺寸。

cv.waitKey()是一个键盘绑定函数。其参数是以毫秒为单位的时间。该函数等待任何键盘事件指定的毫秒。如果您在这段时间内按下任何键,程序将继续运行。如果0被传递,它将无限期地等待一次敲击键。它也可以设置为检测特定的按键,例如,如果按下键 a 等,我们将在下面讨论。

注意 除了键盘绑定事件外,此功能还处理许多其他GUI事件,因此你必须使用它来实际显示图像。

cv.destroyAllWindows()只会破坏我们创建的所有窗口。如果要销毁任何特定的窗口,请使用函数cv.destroyWindow()在其中传递确切的窗口名称作为参数。

注意在特殊情况下,你可以创建一个空窗口,然后再将图像加载到该窗口。在这种情况下,你可以指定窗口是否可调整大小。这是通过功能cv.namedWindow()完成的。默认情况下,该标志为cv.WINDOW_AUTOSIZE。但是,如果将标志指定为cv.WINDOW_NORMAL,则可以调整窗口大小。当图像尺寸过大以及向窗口添加跟踪栏时,这将很有帮助。

cv2.namedWindow('image',cv.WINDOW_NORMAL)
cv2.imshow('image',image)
cv2.waitKey(0)
cv2.destroyAllWindows()

3、写入图像

使用函数cv.imwrite()保存图像。

第一个参数是文件名,第二个参数是要保存的图像。cv.imwrite('messigray.png',img)

这会将图像以PNG格式保存在工作目录中。

在下面的程序中,以灰度加载图像,显示图像,按s保存图像并退出,或者按ESC键直接退出而不保存。

import numpy as np
import cv2 
img = cv.imread('dog2.jpg',0)
cv.imshow('image',img)
k = cv.waitKey(0)
if k == 27:   # 等待ESC退出
 cv.destroyAllWindows()
elif k == ord('s'): # 等待关键字,保存和退出
 cv.imwrite('dog2gray.png',img)
 cv.destroyAllWindows()

如果使用的是64位计算机,则必须k = cv.waitKey(0)按如下所示修改行:k = cv.waitKey(0) & 0xFF

4、结合使用matplotlib

import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt
img = cv.imread('messi5.jpg',0)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) # 隐藏 x 轴和 y 轴上的刻度值
plt.show()

警告:OpenCV加载的彩色图像处于BGR模式。但是Matplotlib以RGB模式显示。因此,如果使用OpenCV读取彩色图像,则Matplotlib中将无法正确显示彩色图像。

总结

到此这篇关于python opencv 实现读取、显示、写入图像的方法的文章就介绍到这了,更多相关python opencv 图片读取显示写入内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python的ORM框架中SQLAlchemy库的查询操作的教程
Apr 25 Python
Python中str.format()详解
Mar 12 Python
python获取当前目录路径和上级路径的实例
Apr 26 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
Mar 14 Python
pandas 数据结构之Series的使用方法
Jun 21 Python
PyQt5响应回车事件的方法
Jun 25 Python
Python函数生成器原理及使用详解
Mar 12 Python
Python爬虫JSON及JSONPath运行原理详解
Jun 04 Python
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
Oct 19 Python
用ldap作为django后端用户登录验证的实现
Dec 07 Python
python音频处理的示例详解
Dec 23 Python
Python中Pyspider爬虫框架的基本使用详解
Jan 27 Python
python:删除离群值操作(每一行为一类数据)
Jun 08 #Python
pyecharts在数据可视化中的应用详解
Jun 08 #Python
python numpy实现rolling滚动案例
Jun 08 #Python
Python如何向SQLServer存储二进制图片
Jun 08 #Python
python求numpy中array按列非零元素的平均值案例
Jun 08 #Python
Python过滤掉numpy.array中非nan数据实例
Jun 08 #Python
使用Python FastAPI构建Web服务的实现
Jun 08 #Python
You might like
PHP 写文本日志实现代码
2010/05/18 PHP
在php和MySql中计算时间差的方法
2011/04/22 PHP
PHP下使用CURL方式POST数据至API接口的代码
2013/02/14 PHP
浅谈PHP面向对象之访问者模式+组合模式
2017/05/22 PHP
键盘上一张下一张兼容IE/google/firefox等浏览器
2014/01/28 Javascript
JS 使用for循环遍历子节点查找元素
2014/09/06 Javascript
jQuery实现的漂亮表单效果代码
2015/08/18 Javascript
BootStrap文件上传样式超好看【持续更新】
2016/05/10 Javascript
jQuery中Find选择器用法示例
2016/09/21 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
2016/10/24 Javascript
jQuery实现的简单拖动层示例
2017/02/22 Javascript
微信、QQ、微博、Safari中使用js唤起App
2018/01/24 Javascript
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
2019/05/10 Javascript
在vue中阻止浏览器后退的实例
2019/11/06 Javascript
如何在vue中使用jointjs过程解析
2020/05/29 Javascript
JS页面动态绘图工具SVG,Canvas,VML介简介
2020/10/16 Javascript
[33:15]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VP VS Mineski
2018/03/31 DOTA
基于Python实现文件大小输出
2016/01/11 Python
Python中扩展包的安装方法详解
2017/06/14 Python
Python正则表达式常用函数总结
2017/06/24 Python
Python函数式编程实例详解
2020/01/17 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
python try...finally...的实现方法
2020/11/25 Python
详解如何用canvas画一个微笑的表情
2019/03/14 HTML / CSS
肯尼亚网上商城:Kilimall
2016/08/20 全球购物
YesStyle美国/全球:购买亚洲时装、美容化妆品和生活百货
2017/01/16 全球购物
.NET里面什么时候需要调用垃圾回收
2015/06/01 面试题
高三上学期学习自我评价
2014/04/23 职场文书
ktv好的活动方案
2014/08/15 职场文书
重阳节演讲稿:尊敬帮助老人 弘扬传统美德
2014/09/25 职场文书
开国大典观后感
2015/06/04 职场文书
政审证明材料
2015/06/19 职场文书
幽默口才训练经典句子(48句)
2019/08/19 职场文书
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
2021/08/30 Python
vue自定义右键菜单之全局实现
2022/04/09 Vue.js
JavaWeb Servlet开发注册页面实例
2022/04/11 Java/Android