python︱matplotlib使用(读入、显示、写出、opencv混用、格式转换...)
来源:互联网 发布:网络女主播直播洗澡 编辑:程序博客网 时间:2024/06/03 17:54
opencv和matplotlib是比较常用的图像分析模块。在Ipython里面,opencv不能直接显示出来,所以有些时候会借助matplotlib来显示。
.
1、matplotlib的读入与显示
import matplotlib.pyplot as plt import numpy as np from PIL import Image img = Image.open('lena.png') # 读取的图像显示的<matplotlib.image.AxesImage object at 0x7f9f0c60f7f0> img.show() img.format region = img.transpose(Image.ROTATE_180) #翻转 out = img.resize((128, 128)) # 改变大小 out1 = img.rotate(45) #旋转 plt.imshow(img) # 显示 mean=np.array([104., 117., 124.]) #均值 np.shape(img) img1 -= mean plt.imshow(img1)
Image.open之后,是以
2、Image.open格式<—>矩阵
image.open转矩阵
img = Image.open('lena.png')img1 = np.array(img)
矩阵转 image.open
img = Image.open('lena.png')img1 = np.array(img) Image.fromarray(img1 )
3、字节bytes<—>image.open格式以及矩阵格式
有的图片读入方式以.read(),读入之后为Bytes类型。
def get_file_content(filePath): with open(filePath, 'rb') as fp: return fp.read()
这是要转换为图像格式以及array格式该怎么操作(BytesIO字节读入函数):
# 转image.open格式——常规from PIL import Image, ImageDraw, ImageFontfrom io import BytesIOimport numpy as npImage.open(BytesIO(get_file_content(pic_path))) # 转成array格式——常规np.array(Image.open(BytesIO(get_file_content(pic_path))))
BytesIO返回的格式为:<_io.BytesIO at 0x137c4f6f68>
.
4、PIL格式保存
img = Image.open('lena.png')img .save(savepath)
.
5、在ipython中显示图片
im=Image.open('/home/Picture/test.jpg')im.show()
有些时候,show()出来,还没有出来,这时候需要加上:
%matplotlib inline
.
6、图像裁剪、旋转、改变
im=Image.open('/home/Picture/test.jpg')box=(100,100,500,500)# box=(x,y,x+w,y+h)region=im.crop(box) #此时,region是一个新的图像对象。
img = Image.open('lena.png') # 读取的图像显示的region = img.transpose(Image.ROTATE_180) #翻转 out = img.resize((128, 128)) # 改变大小 out1 = img.rotate(45) #旋转 plt.imshow(img) # 显示
.
7、opencv打开的图像用plt显示与保存
显示可以直接imshow
import matplotlib.pyplot as pltimport cv2img = cv2.imread('01.jpg',cv2.IMREAD_COLOR)%matplotlib inlineplt.subplot(111)plt.imshow(img)
除了用cv2.imwrite保存cv2读的内容,保存可以用misc (不太对) :
cv2.imwrite('img.jpg',img, [int(cv2.IMWRITE_JPEG_QUALITY), 100] )
from scipy import misc# numpy直接保存出来misc.imsave('img.jpg', img)
当然会出现通道错误,比如(左图是misc保存的,右图是cv2.imwrite保存的):
阅读全文
0 0
- python︱matplotlib使用(读入、显示、写出、opencv混用、格式转换...)
- python opencv 使用 Matplotlib显示图像
- opencv︱图片与视频的读入、显示、写出、放缩与基本绘图函数介绍
- OpenCV for Python [2]使用Matplotlib显示图片
- opencv-python(1):读入、显示、保存图像
- python opencv入门(读 / 写 显示以及转换图像 和 视频读入)
- OpenCV与Python之图像的读入与显示以及利用Numpy的图像转换
- 《python+opencv学习》一、Gui Features in Opencv(2)Matplotlib显示图片
- openCV Python学习笔记(一)图片的读入,显示与保存
- OpenCV for Python [1].图片读入、显示、保存
- DirectShow OpenCV GDI+ 图形显示格式转换
- DirectShow OpenCV GDI+ 图形显示格式转换
- Python中的数据读入、写出以及交换
- OpenCV图像读入显示另存为
- OpenCV- 图像文件读入和显示
- python matplotlib 显示中文
- Opencv学习手册(一)--- 图像文件读入和显示
- OpenCV中文网站上有讲怎么使用OpenCV读入和显示图像和视频
- C#模拟操作记事本
- uva 10080 Gopher II【匈牙利算法】
- 留给人类的时间不多了?现在不学机器学习更待何时!
- android 小知识
- Codeforces 890 C. Petya and Catacombs (贪心)
- python︱matplotlib使用(读入、显示、写出、opencv混用、格式转换...)
- CEF 2987 WIN10 编译历程
- 趣味机器学习入门小项目(附教程与数据)
- java FreeMarker制作word
- Android使用三方库实现日期选择器
- dpkg: error processing package XXX (--configure) 解决方法 (ubuntu右上角红色警告)
- linux 使用 rz 和 sz 命令
- winform窗体抖动效果
- Mina学习笔记 codec filter