在线文档教程

io

Module: io

实用程序以各种格式读取和写入图像。

以下插件可用:

插入描述
fits通过PyFITS读取FITS图像
FreeImage使用FreeImage库加载图像
gdal通过GDAL Library(www.gdal.org)进行图像阅读
GTK使用GTK库快速显示图像
ImageIO通过ImageIO库读取图像
imread图像读取和写入通过imread
matplotlib使用Matplotlib显示或保存图像
PIL通过Python图像库读取图像
QT使用Qt库快速显示图像
simpleitk通过SimpleITK进行图像读取和写入
tifffile使用tifffile.py加载并保存基于TIFF和TIFF的图像

skimage.io.call_plugin(kind,* args,** kwargs)找到合适的'kind'插件并执行它。
skimage.io.concatenate_images(IC)将图像集合中的所有图像连接到一个数组中。
skimage.io.find_available_plugins(加载)列出可用的插件。
skimage.io.imread(fname,as_grey,plugin,...)从文件加载图像。
skimage.io.imread_collection(load_pattern,...)加载一组图像。
skimage.io.imread_collection_wrapper(imread)
skimage.io.imsave(fname,arr,插件)将图像保存到文件。
skimage.io.imshow(arr,插件)显示图像。
skimage.io.imshow_collection(ic,插件)显示一组图像。
skimage.io.load_sift(F)从外部生成的文件中读取SIFT或SURF功能。
skimage.io.load_surf(F)从外部生成的文件中读取SIFT或SURF功能。
skimage.io.plugin_info(插件)返回插件元数据。
skimage.io.plugin_order()返回当前首选的插件订单。
skimage.io.pop()从共享图像堆栈中弹出图像。
skimage.io.push(IMG)将图像推入共享图像堆栈。
skimage.io.reset_plugins()
skimage.io.show()显示待处理图像。
skimage.io.use_plugin(名称,种类)设置指定操作的默认插件。
skimage.io.ImageCollection(load_pattern,...)加载和管理一组图像文件。
skimage.io.MultiImage(文件名,...)一个包含单个多帧图像的类。
skimage.io.collection用于存放图像集合的数据结构,以及可选的缓存。
skimage.io.manage_plugins处理图像读取,写入和绘图插件。
skimage.io.sift阅读SIFT和SURF功能文件。
skimage.io.util

call_plugin

skimage.io.call_plugin(kind, *args, **kwargs)[资源]

找到合适的'kind'插件并执行它。

参数:kind:{'imshow','imsave','imread','imread_collection'}查找功能。插件:str,可选插件加载。默认为None,在这种情况下使用第一个匹配的插件。* args,** kwargs:参数和关键字参数传递给插件函数。

concatenate_images

skimage.io.concatenate_images(ic)[资源]

将图像集合中的所有图像连接到一个数组中。

参数:ic:可迭代的图像(包括ImageCollection和MultiImage)要连接的图像。
返回:ar:np.ndarray比ic中的图像多一维的数组。
举:ValueError如果ic中的图像不具有相同的形状。

扩展内容

ImageCollection.concatenate, MultiImage.concatenate

find_available_plugins

skimage.io.find_available_plugins(loaded=False)[资源]

列出可用的插件。

参数:loaded:bool如果为True,则只显示当前加载的插件。默认情况下,显示所有插件。
返回:p:字典插件名称作为键和暴露的函数作为值的字典。

imread

skimage.io.imread(fname, as_grey=False, plugin=None, flatten=None, **plugin_args)[source]

从文件加载图像。

参数:fname:字符串图像文件名,例如test.jpg或URL。as_grey:bool如果为True,则将彩色图像转换为灰度(64位浮点数)。已经处于灰度格式的图像不会被转换。plugin:str要使用的插件的名称。默认情况下,尝试不同的插件(从Python Imaging Library开始),直到找到合适的候选人。如果没有给出,并且fname是一个tiff文件,则将使用tifffile插件。
返回:img_array:ndarray不同的色带/通道存储在第三维中,使得灰度图像为MxN,RGB图像MxNx3和RGBA图像MxNx4。

| 其他参数:|

| | plugin_args:关键字传递给给定的插件。flatten:bool向后兼容关键字,取代as_grey。plugin_args:关键字传递给给定的插件。|

imread_collection

skimage.io.imread_collection(load_pattern, conserve_memory=True, plugin=None, **plugin_args)[source]

加载一组图像。

参数:load_pattern:str或list要加载的对象的列表。这些通常是文件名,但可能因当前活动的插件而异。有关此参数的默认行为,请参阅ImageCollection的文档字符串。conserve_memory:bool,可选如果为True,则在特定时间内不要在内存中保留多个内存。否则,图像将在加载后被缓存。
返回:ic:ImageCollection图像集合。

| 其他参数:|

| | plugin_args:关键字传递给给定的插件。|

imread_collection_wrapper

skimage.io.imread_collection_wrapper(imread)[source]

imsave

skimage.io.imsave(fname, arr, plugin=None, **plugin_args)[资源]

将图像保存到文件。

参数:fname:str目标文件名。(M,N)或(M,N,3)或(M,N,4)图像数据。plugin:str要使用的插件的名称。默认情况下,尝试不同的插件(从Python Imaging Library开始),直到找到合适的候选人。如果没有给出,并且fname是一个tiff文件,则将使用tifffile插件。

| 其他参数:|

| | plugin_args:关键字传递给给定的插件。|

imshow

skimage.io.imshow(arr, plugin=None, **plugin_args)[资源]

显示图像。

参数:arr:ndarray或str图像数据或图像文件的名称。plugin:str要使用的插件的名称。默认情况下,尝试不同的插件(从Python Imaging Library开始),直到找到合适的候选人。

| 其他参数:|

| | plugin_args:关键字传递给给定的插件。|

imshow_collection

skimage.io.imshow_collection(ic, plugin=None, **plugin_args)[source]

显示一组图像。

参数:ic:要显示的ImageCollection集合。plugin:str要使用的插件的名称。默认情况下,尝试不同的插件,直到找到合适的候选人。

| 其他参数:|

| | plugin_args:关键字传递给给定的插件。|

load_sift

skimage.io.load_sift(f)[资源]

从外部生成的文件中读取SIFT或SURF功能。

此例程从http://people.cs.ubc.ca/~lowe/keypoints/http://www.vision.ee.ethz.ch/~surf/读取由二进制实用程序生成的SIFT或SURF文件。

此例程不会从图像生成SIFT / SURF功能。这些算法受到专利保护。请改用skimage.feature.CENSURE

参数:f:字符串或打开文件由http://people.cs.ubc.ca/~lowe/keypoints/或http://www.vision.ee.ethz.ch/~surf/中的特征检测器生成的输入文件
返回:data:带有字段的记录数组row:int要素列的位置:int列要素的位置scale:float要素定向float:要素定向data:数组要素值

  • 行:功能的int行位置

  • 列:功能的列位置

  • 比例:浮动特征比例

  • 方向:浮动功能方向

  • 数据:数组特征值

load_surf

skimage.io.load_surf(f)[资源]

从外部生成的文件中读取SIFT或SURF功能。

此例程从http://people.cs.ubc.ca/~lowe/keypoints/http://www.vision.ee.ethz.ch/~surf/读取由二进制实用程序生成的SIFT或SURF文件。

此例程不会从图像生成SIFT / SURF功能。这些算法受到专利保护。请改用skimage.feature.CENSURE

参数:f:字符串或打开文件由http://people.cs.ubc.ca/~lowe/keypoints/或http://www.vision.ee.ethz.ch/~surf/中的特征检测器生成的输入文件
返回:data:带有字段的记录数组row:int要素列的位置:int列要素的位置scale:float要素定向float:要素定向data:数组要素值

  • 行:功能的int行位置

  • 列:功能的列位置

  • 比例:浮动特征比例

  • 方向:浮动功能方向

  • 数据:数组特征值

plugin_info

skimage.io.plugin_info(plugin)[资源]

返回插件元数据。

参数:plugin:str插件的名称。
返回:m:在插件.ini中指定元数据。

plugin_order

skimage.io.plugin_order()[资源]

返回当前首选的插件订单。

返回:p:字典首选插件顺序字典,函数名称为键和插件(按优先顺序)作为值。

pop

skimage.io.pop()[source]

从共享图像堆栈中弹出图像。

返回:img:ndarray从堆栈弹出的图像。

push

skimage.io.push(img)[source]

将图像推入共享图像堆栈。

参数:img:ndarray图像Push。

reset_plugins

skimage.io.reset_plugins()[资源]

show

skimage.io.show()[资源]

显示待处理图像。

启动当前gui插件的事件循环,并显示所有待处理的图像,通过排队imshowimshow从非交互式脚本使用时,这是必需的。

调用show将阻止代码的执行,直到所有窗口关闭。

例子

>>> import skimage.io as io

>>> for i in range(4): ... ax_im = io.imshow(np.random.rand(50, 50)) >>> io.show()

use_plugin

skimage.io.use_plugin(name, kind=None)[资源]

设置指定操作的默认插件。如果该插件尚未加载,该插件将被加载。

参数:名称:str插件的名称。kind:{'imsave','imread','imshow','imread_collection','imshow_collection'},可选设置该功能的插件。默认情况下,插件是为所有功能设置的。

扩展内容

available_plugins 可用插件列表

例子

要使用Matplotlib作为默认图像阅读器,您可以编写:

>>> from skimage import io >>> io.use_plugin('matplotlib', 'imread')

查看可用插件运行列表io.available_plugins。请注意,这列出了已定义的插件,但如果您的系统没有安装所需的库,则完整列表可能无法使用。

ImageCollection

class skimage.io.ImageCollection(load_pattern, conserve_memory=True, load_func=None, **load_func_kwargs)[资源]

基本: object

加载和管理一组图像文件。

请注意,文件总是按字母顺序存储。另请注意,切片将返回一个新的ImageCollection,而不是数据视图。

参数:load_pattern:str或list加载的模式glob或文件名。路径可以是绝对的或相对的。多个模式应该由os.pathsep分隔,例如'/tmp/work/.png:/tmp/other/.jpg'。另请参阅下面的实现注释。conserve_memory:bool,可选如果为True,则在特定时间内不要在内存中保留多个内存。否则,图像将在加载后被缓存。

| 其他参数:|

| | load_func:默认可调用imread。见下面的注释。|

注意

ImageCollection可以修改通过指定的一个组合来加载从任意源图像load_patternload_func。对于ImageCollection icic[5]用于load_func(file_pattern[5])加载图像。

想象一下,例如,一个ImageCollection从视频文件中加载每第十帧:

class AVILoader: video_file = 'myvideo.avi' def __call__(self, frame): return video_read(self.video_file, frame) avi_load = AVILoader() frames = range(0, 1000, 10) # 0, 10, 20, ... ic = ImageCollection(frames, load_func=avi_load) x = ic[5] # calls avi_load(frames[5]) or equivalently avi_load(50)

另一个用途load_func是将所有图像转换为uint8

def imread_convert(f): return imread(f).astype(np.uint8) ic = ImageCollection('/tmp/*.png', load_func=imread_convert)

对于具有多个图像的文件,图像将被拼合成一个列表并添加到可用图像列表中。在这种情况下,load_func应该接受关键字参数img_num

例子

>>> import skimage.io as io >>> from skimage import data_dir

>>> coll = io.ImageCollection(data_dir + '/chess*.png') >>> len(coll) 2 >>> coll[0].shape (200, 200)

>>> ic = io.ImageCollection('/tmp/work/*.png:/tmp/other/*.jpg')

属性

(str的列表)如果为load_pattern指定了一个全局字符串,则此属性存储扩展的文件列表。否则,这仅仅等于load_pattern。

__init__(load_pattern, conserve_memory=True, load_func=None, **load_func_kwargs)[资源]

加载和管理一组图像。

concatenate()[资源]

将集合中的所有图像连接成一个数组。

返回:ar:np.ndarray一个数组比自身中的图像多一维。
举:ValueError如果ImageCollection中的图像不具有相同的形状。

扩展内容

concatenate_images

conserve_memoryfilesreload(n=None)[资源]

清除图像缓存。

参数:n:无或int仅清除此图像的缓存。默认情况下,整个缓存被删除。

MultiImage

class skimage.io.MultiImage(filename, conserve_memory=True, dtype=None, **imread_kwargs)[资源]

基本: skimage.io.collection.ImageCollection

一个包含单个多帧图像的类。

参数:文件名:str图像文件的完整路径。conserve_memory:bool,可选是否通过缓存单个帧来节省内存。默认值为True。

注意

如果conserve_memory=True内存占用可以减少,但是性能会受到影响,因为必须更频繁地从文件中读取帧。

最后访问的帧被缓存,所有其他帧必须从文件中读取。

当前的实现使用tifffileTiff文件和PIL。

例子

>>> from skimage import data_dir

>>> img = MultiImage(data_dir + '/multipage.tif') >>> len(img) 2 >>> for frame in img: ... print(frame.shape) (15, 10) (15, 10)

__init__(filename, conserve_memory=True, dtype=None, **imread_kwargs)[资源]

加载一个多图像。

filename