Opencv-Python :图片读取、保存、显示
来源:互联网 发布:天猫dw美工教程 百度云 编辑:程序博客网 时间:2024/04/30 18:27
- 打开图片,显示,保存图片
- cv2.imread(), cv2.imshow(), cv2.imwrite()
- 如何用Matplotlib显示图片
- 使用OpenCV
读入图片
使用函数cv2.imread()
来打开图片,图片要么在当前工作目录,要么是全路径。
第二个参数是一个标志位,用来指定打开的方式。
·cv2.IMREAD_COLOR
:加载一个彩色图片。图片的透明度会被忽略,这个是默认标志 ·cv2.IMREAD_GRAYSCALE
:用灰度模式加载图片 ·cv2.IMREAD_UNCHANGED
:包含alpha通道的方式加载图片
除了这三种标志外,也可以传对应的整数参数1,0,或者-1
import numpy as npimport cv2# Load an color image in grayscaleimg = cv2.imread('messi5.jpg', 0)
警告:
即便图片路径是错的,也不会报错,但是print img会给你None
显示图片
使用函数cv2.imshow()
来在窗口里显示图片,窗口自动适配图片大小。
第一个参数是窗口名称,是字符串。第二个参数是我们的图片,你想创建多少窗口都可以,但是得给不同的窗口不同的名字。
cv2.imshow('image', img)cv2.waitKey(0)cv2.destroyAllWindows()
cv2.waitKey()
是一个键盘绑定函数。它的参数是毫秒数,这个函数会等待任意键盘事件指定的毫秒时间。如果你点了任意键,这个程序继续。如果传入0,它会一直等待按键。它也可以设置成检测指定键,比如如果a被按了,后面我们会讲
cv2.destroyAllWindows()
销毁所有的我们创建的窗口,如果你想销毁指定的窗口,使用函数cv2.destroyWindow()
你可以传指定窗口的名字作为参数。
注意:
有种特殊情况你可以先创建窗口,再把图片加载到里面。在这种情况下,你可以指定窗口是否可以改变大小。这是通过函数cv2.namedWindow()完成的。默认情况下,标志位是cv2.WINDOW_AUTOSIZE。但是如果你指定标志位为cv2.WINDOW_NORMAL,你可以改变窗口大小。她可以在图片太大的时候在窗口上加上滚动条。
看下面的代码:
cv2.namedWindow('image',cv2.WINDOW_NORMAL)cv2.imshow('image',img)cv2.waitKey(0)cv2.destroyAllWindows()
写入一个图片
使用函数cv2.imwrite()
来写入图片。
第一个参数是文件名,第二个参数是你要保存的图片。
cv2.imwrite('messigray.png', img)
这会在工作目录存一个png格式的图片
合起来
下面的程序会按灰度方式加载图片,显示,如果你敲了’s’就会保存图片并退出,或者你如果敲了ESC键就会不保存直接退出
import numpy as npimport cv2img = cv2.imread('messi5.jpg', 0)cv2.imshow('image',img)k = cv2.waitKey(0)if k == 27: # wait for ESC key to exit cv2.destroyAllWindows()elif k == ord('s'): # wait for 's' key to save and exit cv2.imwrite('messigray.png', img) cv2.destroyAllWindows()
警告:
如果你使用64位的机器,你需要把k = cv2.waitKey(0) 这行换成:
k = cv2.waitKey(0) & 0xFF
使用Matplotlib
Matplotlib是一个Python的绘图库,提供了多种多样的绘图方法。这里是用Matplotlib来显示图片。你可以缩放图片保存等。
import numpy as npimport cv2from matplotlib import pyplot as pltimg = cv2.imread('messi5.jpg', 0)plt.imshow(img, cmap='gray', interpolation='bicubic')plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axisplt.show()
Matplotlib还有更多的绘图选项。
警告:
OpenCV加载的彩色图片是BGR模式的。但是Matplotlib显示的是RGB模式的。所以彩色图片如果是通过OpenCV读入的在Matplotlib里会显示不正确。
参考链接:http://www.jianshu.com/p/357128398301
- Opencv-Python :图片读取、保存、显示
- opencv读取、显示、保存图片
- OpenCV读取图片并显示和保存图片
- OpenCV学习笔记(一):读取、显示、保存图片
- OpenCV学习笔记(一):读取、显示、保存图片
- OpenCV学习笔记(一):读取、显示、保存图片
- OpenCV学习笔记(一):读取、显示、保存图片
- OpenCV学习笔记(一):读取、显示、保存图片
- OpenCV——读取、显示及保存图片
- OpenCV——读取、显示及保存图片
- 读取、显示、保存图片
- openCV-Python笔记一:图像的读取、显示和保存
- openCV-Python笔记一:图像的读取、显示和保存
- OpenCV for python 之图像读取、显示、保存
- opencv for python (1) 图像读取、显示、保存
- opencv读取、显示图片
- opencv读取、显示、保存图像
- OpenCV for Python [1].图片读入、显示、保存
- 进程的周期Sched
- UVA 1635 Irrelevant Elements(杨辉三角+递推式求组合数+算数基本定理)
- Python学习笔记-17.09.25
- python基础 输入与输出
- Shell编程基础
- Opencv-Python :图片读取、保存、显示
- Windows10上安装tensorflow-gpu流程
- mysql的学习路程--DDL
- Git 常用操作(一)
- 封装jdbc的crud操作
- 不完全浅析Tarjan求强连通分量(SCC)
- SOE使用
- mDNS移植Android系统简介
- TensorFlow 排序,ranking