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 相关文章推荐
wxPython窗口中文乱码解决方法
Oct 11 Python
Python中if __name__ == "__main__"详细解释
Oct 21 Python
Python运用于数据分析的简单教程
Mar 27 Python
python搜索指定目录的方法
Apr 29 Python
python将每个单词按空格分开并保存到文件中
Mar 19 Python
python针对不定分隔符切割提取字符串的方法
Oct 26 Python
python获取中文字符串长度的方法
Nov 14 Python
Pycharm以root权限运行脚本的方法
Jan 19 Python
python 格式化输出百分号的方法
Jan 20 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
Jun 21 Python
python中upper是做什么用的
Jul 20 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
Oct 20 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
Uncaught exception com_exception with message Failed to create COM object
2012/01/11 PHP
CI框架中libraries,helpers,hooks文件夹详细说明
2014/06/10 PHP
Laravel 5 框架入门(三)
2015/04/09 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
2016/03/07 PHP
Laravle eloquent 多对多模型关联实例详解
2017/11/22 PHP
javascript 判断数组是否已包含了某个元素的函数
2010/05/30 Javascript
基于jQuery的动态表格插件
2011/03/28 Javascript
基于jquery的禁用右键、文本选择功能、复制按键的实现代码
2013/08/27 Javascript
Jquery遍历checkbox获取选中项value值的方法
2014/02/13 Javascript
在jquery中的ajax方法怎样通过JSONP进行远程调用
2014/04/04 Javascript
跟我学习javascript的执行上下文
2015/11/18 Javascript
jQuery移动web开发中的页面初始化与加载事件
2015/12/03 Javascript
js中获取键盘事件的简单实现方法
2016/10/10 Javascript
jQuery Ztree行政地区树状展示(点击加载)
2016/11/09 Javascript
浅谈javascript的url参数parse和build函数
2017/03/04 Javascript
关于react中组件通信的几种方式详解
2017/12/10 Javascript
基于vue.js实现的分页
2018/03/13 Javascript
Angular5集成eventbus的示例代码
2018/07/19 Javascript
微信小程序url传参写变量的方法
2018/08/09 Javascript
vue 的点击事件获取当前点击的元素方法
2018/09/15 Javascript
Vue实现类似Spring官网图片滑动效果方法
2019/03/01 Javascript
vue 实现搜索的结果页面支持全选与取消全选功能
2019/05/10 Javascript
JavaScript 斐波那契数列 倒序输出 输出100以内的质数代码实例
2019/09/11 Javascript
Node.js API详解之 V8模块用法实例分析
2020/06/05 Javascript
js实现鼠标切换图片(无定时器)
2021/01/27 Javascript
[37:35]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第二局
2016/02/25 DOTA
Python with语句上下文管理器两种实现方法分析
2018/02/09 Python
python语言中with as的用法使用详解
2018/02/23 Python
python 读取.nii格式图像实例
2020/07/01 Python
SmartBuyGlasses丹麦:网上购买名牌太阳镜、眼镜和隐形眼镜
2016/10/01 全球购物
中学生期末评语
2014/02/03 职场文书
金融管理应届生求职信
2014/02/20 职场文书
《观舞记》教学反思
2014/04/16 职场文书
2015年基层党组织公开承诺书
2015/01/21 职场文书
环保建议书作文300字
2015/09/14 职场文书
2016年教师节感恩寄语
2015/12/04 职场文书