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插件的事件循环,并显示所有待处理的图像,通过排队imshow
。imshow
从非交互式脚本使用时,这是必需的。
调用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_pattern
和load_func
。对于ImageCollection ic
,ic[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
内存占用可以减少,但是性能会受到影响,因为必须更频繁地从文件中读取帧。
最后访问的帧被缓存,所有其他帧必须从文件中读取。
当前的实现使用tifffile
Tiff文件和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