Python学习02_图片操作
来源:互联网 发布:房屋平面设计软件手机 编辑:程序博客网 时间:2024/06/15 18:00
转自:http://www.cnblogs.com/denny402/p/5121897.html
skimage提供了io模块,顾名思义,这个模块是用来图片输入输出操作的。为了方便练习,也提供一个data模块,里面嵌套了一些示例图片,我们可以直接使用。
引入skimage模块可用:
from
skimage
import
io
一、从外部读取图片并显示
读取单张彩色rgb图片,使用skimage.io.imread(fname)函数,带一个参数,表示需要读取的文件路径。显示图片使用skimage.io.imshow(arr)函数,带一个参数,表示需要显示的arr数组(读取的图片以numpy数组形式计算)。
from skimage import ioimg=io.imread('d:/dog.jpg')io.imshow(img)
读取单张灰度图片,使用skimage.io.imread(fname,as_grey=True)函数,第一个参数为图片路径,第二个参数为as_grey, bool型值,默认为False
from skimage import ioimg=io.imread('d:/dog.jpg',as_grey=True)io.imshow(img)
二、程序自带图片
skimage程序自带了一些示例图片,如果我们不想从外部读取图片,就可以直接使用这些示例图片:
astronaut
宇航员图片coffee
一杯咖啡图片lena
lena美女图片camera
拿相机的人图片coins
硬币图片moon
月亮图片checkerboard
棋盘图片horse
马图片page
书页图片chelsea
小猫图片hubble_deep_field
星空图片text
文字图片clock
时钟图片immunohistochemistry
结肠图片
显示这些图片可用如下代码,不带任何参数
from skimage import io,dataimg=data.lena()io.imshow(img)
图片名对应的就是函数名,如camera图片对应的函数名为camera(). 这些示例图片存放在skimage的安装目录下面,路径名称为data_dir,我们可以将这个路径打印出来看看:
from skimage import data_dirprint(data_dir)
显示为: D:\Anaconda3\lib\site-packages\skimage\data
也就是说,下面两行读取图片的代码效果是一样的:
from skimage import data_dir,data,ioimg1=data.lena() #读取lean图片img2=io.imread(data_dir+'/lena.png') #读取lena图片
三、保存图片
使用io模块的imsave(fname,arr)函数来实现。第一个参数表示保存的路径和名称,第二个参数表示需要保存的数组变量。
from skimage import io,dataimg=data.chelsea()io.imshow(img)io.imsave('d:/cat.jpg',img)
保存图片的同时也起到了转换格式的作用。如果读取时图片格式为jpg图片,保存为png格式,则将图片从jpg图片转换为png图片并保存。
四、图片信息
如果我们想知道一些图片信息,可以在spyder编辑器的右上角显示:
也可以直接以程序方式打印输出
from skimage import io,dataimg=data.chelsea()io.imshow(img)print(type(img)) #显示类型print(img.shape) #显示尺寸print(img.shape[0]) #图片高度print(img.shape[1]) #图片宽度print(img.shape[2]) #图片通道数print(img.size) #显示总像素个数print(img.max()) #最大像素值print(img.min()) #最小像素值print(img.mean()) #像素平均值
结果输出:
<class 'numpy.ndarray'>
(300, 451, 3)
300
451
3
405900
231
0
115.305141661
- Python学习02_图片操作
- Python学习03_图片像素操作
- Python学习_我该怎么操作类的继承
- Git学习笔记02_仓库操作
- python学习_多线程
- 【python学习记录】--1--对图片的基本操作
- java学习_流操作
- pg学习_集合操作
- Python爬虫_自动下载图片
- python学习_入门(2)
- python学习笔记_基础
- Python学习笔记_数字
- Python学习_科学计算
- python学习_控制结构
- Python学习笔记_函数
- Python学习笔记_文件系统
- Python学习笔记_数据类型
- Python学习_我该怎么操作最基本的加减乘除运算
- 【poj 3273】Monthly Expense 【二分 注意上下界】
- sql
- 分布式锁原理及实现方式
- Leetcode-14:Longest Common Prefix
- ACM零起点2017-7-24(刷题)
- Python学习02_图片操作
- 从概念、关键问题、兴起到实现需求多角度了解DevOps
- 超级详细SpringMVC基础入门
- 121. Best Time to Buy and Sell Stock
- Sublime Text 3常用插件安装
- 达人篇:3.1.2)CPK(重要)
- 正向代理与反向代理【总结】
- Hibernate(二)—Hibernate的一些基本概念和查询
- 扫雷游戏的编写