Python3+OpenCV学习笔记(一):图像加载、显示和保存
来源:互联网 发布:perl from json 编辑:程序博客网 时间:2024/04/30 07:24
进行Python和OpenCV学习,利用写博客笔记的方式来督促自己,并记录学习过程、学习心得和遇到的问题。
Python版本是Python3.5,OpenCV版本OpenCV.3.3.0,开发环境为PyCharm,参考文档链接如下:
OpenCV-Doc
进行图像处理的第一步什么?当然是找一张图片咯
开个玩笑,第一步当然是加载图像,所以我们将用到cv2中的第一个函数cv2.imread(filename, mode),“filename”为需要加载的图像文件的名称,“mode”有-1,0,1三种参数,分别对应IMREAD_COLOR(默认标志,加载彩色图像,任何图像的透明度都将被忽略),IMREAD_GRAYSCALE(以灰度模式加载图像),IMREAD_UNCHANGED(加载含Alpha通道的图像,即含有透明度通道)
“mode”参数可以选择默认。
img = cv2.imread('Rachel.jpg')
加载图像后,当然需要显示出来,我们才能看到,所以,接下来用到第二个函数cv2.imshow(windowname, filename)“windowname”输入显示窗口的名称,参数类型str,需要开启多个窗口时,只需要“windowname”不同即可。下面我们输入下列代码:
import cv2img = cv2.imread('Rachel.jpg', 0)cv2.imshow('WindowOne', img)# 等待按键输入cv2.waitKey()# 关闭所有窗口,释放资源cv2.destroyAllWindows()cv2.waitKey(*)为键盘绑定函数,表示等待 “*” 毫秒,检测键盘是否有输入,返回值为ACSII码。默认参数为“0”,将一直等待输入,有键盘输入事件后才执行后面的函数。
cv2.destroyAllWindows()销毁所有窗口,回收资源。如果需要销毁特定窗口,则使用函数cv2.destroyWindow(),传递窗口名即可。
下面我们看看效果图:
下面我们看看效果图:
我们已经将原图转化为灰度图显示了,如果我们想将图片保存下来该怎么办呢?
祭出下一个函数cv2.imwrite(filename, object)“filename”保存文件名字和格式,参数类型str,如‘rachel.png’,‘object’为想要保存的图像对象。
import cv2img = cv2.imread('Rachel.jpg')# 将img从BGR图像转换为灰度图并存入img2中img2 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY )cv2.imshow('WindowOne', img)# 将img2保存到目录中,命名为“imwrite.png”cv2.imwrite('imwrite.png', img2)while True:if (cv2.waitKey() & 0xFF) == ord('q'):breakelse:passcv2.destroyAllWindows()示例代码比较简单,就不过多赘述,运行示例:
可以看到在目录下出现了红色框中的“imwrite.png”文件。
Matplotlib
Matplotlib是Python的绘图库,提供了各种绘图方法,可以进行图像放大、保存等操作。我们运行下面的示例:
import cv2from matplotlib import pyplot as pltimg = cv2.imread('girl.jpg', 0)plt.imshow(img, cmap='jet')# 隐藏x、y坐标plt.xticks([]), plt.yticks([]) plt.show()运行结果:
原图
利用Matplotlib转换之后的图像
值得注意的是OpenCV加载的彩色图像处于BGR模式。但Matplotlib以RGB模式显示。因此,如果使用OpenCV读取图像,则彩色图
像将无法在Matplotlib中正确显示。
Matplotlib详细请参阅:Matplotlib Tutorials
阅读全文
0 0
- Python3+OpenCV学习笔记(一):图像加载、显示和保存
- opencv学习笔记 一 载入、显示和保存图像
- opencv 2.x学习笔记(一)加载和显示图像
- 【OpenCV学习笔记】【函数学习】十一(读入图像﹑显示图像和保存图像)
- OpenCV 2 学习笔记(4): 加载,显示和保存图像,Mat类与IplImage类
- openCV-Python笔记一:图像的读取、显示和保存
- openCV-Python笔记一:图像的读取、显示和保存
- OpenCV学习笔记(一):图像显示
- opencv学习笔记(一)——图像加载、显示、输出
- opencv学习(二)之图像的加载、显示、保存
- OpenCV学习笔记(一):读取、显示、保存图片
- OpenCV学习笔记(一):读取、显示、保存图片
- OpenCV学习笔记(一):读取、显示、保存图片
- OpenCV学习笔记(一):读取、显示、保存图片
- OpenCV学习笔记(一):读取、显示、保存图片
- OpenCV笔记(三)加载、显示图像
- OpenCV学习笔记(一)图像的载入,显示和输出
- 【OpenCV学习笔记】三、图像读取、显示及保存
- 231. Power of Two
- 动态代理完成字符集编码过滤器
- 每天一道LeetCode-----逆序链表
- leetcode 4 Median of Two Sorted Arrays(有坑待填)
- Spring Boot---(2)Spring Boot 配置文件详解
- Python3+OpenCV学习笔记(一):图像加载、显示和保存
- opencv3/C++图像边缘提取
- C++ Primer 12章习题
- Hibernate框架笔记整理--二
- androidstudio打包失败
- Leetcode——第136题——Single Number
- Python format 格式化函数 转载菜鸟教程
- Java学习14:多线程
- 类中的函数重载