python 添加图片_python 图片读取、添加等

一 opencv

copycode.gif

import cv2 as cv

# load

img = cv.imread(imagepath)

# shape=(height, width, channel)

h,w,c = img.shape

# show

cv.imshow('window_title', img)

# save

cv.imwrite(savepath, img)

copycode.gif

二 matplotlib

copycode.gif

import matplotlib.pyplot as plt # plt 用于显示图片

import matplotlib.image as mpimg # mpimg 用于读取图片

import numpy as np

# load

img = mpimg.imread('dog.jpg')

# 此时 img 就已经是一个 np.array 了,可以对它进行任意处理

# height, width, channel=(360, 480, 3)

h,w,c = img.shape

# show

plt.imshow(img) # 显示图片

plt.axis('off') # 不显示坐标轴

plt.show()

# save

# 适用于保存任何 matplotlib 画出的图像,相当于一个 screencapture

plt.savefig('fig_dog.png')

copycode.gif

注:

(1)plt.imshow(image)中的图片的数据类型可以使np.array类型

imshow()函数格式为:matplotlib.pyplot.imshow(X, cmap=None)

X: 要绘制的图像或数组。

cmap: 颜色图谱(colormap), 默认绘制为RGB(A)颜色空间。

其它可选的颜色图谱如下列表:

颜色图谱描述

autumn

红-橙-黄

bone

黑-白,x线

cool

青-洋红

copper

黑-铜

flag

红-白-蓝-黑

gray

黑-白

hot

黑-红-黄-白

hsv

hsv颜色空间, 红-黄-绿-青-蓝-洋红-红

inferno

黑-红-黄

jet

蓝-青-黄-红

magma

黑-红-白

pink

黑-粉-白

plasma

绿-红-黄

prism

红-黄-绿-蓝-紫-...-绿模式

spring

洋红-黄

summer

绿-黄

viridis

蓝-绿-黄

winter

蓝-绿

用的比较多的有gray,jet等,如:

plt.imshow(image,plt.cm.gray)

plt.imshow(img,cmap=plt.cm.jet)

(2)mpimg 既提供了加载图像函数imread,又提供了保存图像函数imsave

(3)plt.savefig函数 可以将显示在fig中图像保存下来

延伸:图像缩放显示

from scipy import misc

lena_new_sz = misc.imresize(img, 0.5) # 第二个参数如果是整数,则为百分比,如果是tuple,则为输出图像的尺寸

plt.imshow(img_new_sz)

plt.axis('off')

plt.show()

三 PIL

PIL加载显示图像有两种方法:

其一:调用操作系统自带的图片浏览器来打开图片

copycode.gif

from PIL import Image

# load

im = Image.open('cat.jpg')

# show

im.show()

"""

# 返回 image's size w,h = (480, 360)

w,h = img.size

# PIL.JpegImagePlugin.JpegImageFile

type(img)

# 直接调用Image类的save方法

img.save('new_cat.png')

"""

copycode.gif

其二:让程序来绘制图片

copycode.gif

from PIL import Image

import matplotlib.pyplot as plt

img=Image.open('/home/wanghao/Pictures/001.jpg')

plt.figure("head")

plt.imshow(img)

plt.show()

copycode.gif

总结一些绘制和显示图片常用的一些函数:

函数名

功能

调用格式

figure

创建一个显示窗口

plt.figure(num=1,figsize=(8,8)

imshow

绘制图片

plt.imshow(image)

show

显示窗口

plt.show()

subplot

划分子图

plt.subplot(2,2,1)

title

设置子图标题(与subplot结合使用)

plt.title('origin image')

axis

是否显示坐标尺

plt.axis('off')

subplots

创建带有多个子图的窗口

fig,axes=plt.subplots(2,2,figsize=(8,8))

ravel

为每个子图设置变量

ax0,ax1,ax2,ax3=axes.ravel()

set_title

设置子图标题(与axes结合使用)

ax0.set_title('first window')

tight_layout

自动调整子图显示布局

plt.tight_layout()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值