skimage.io
#
讀取和儲存圖片與影片。
將圖片集合中的所有圖片串連成一個陣列。 |
|
從檔案載入圖片。 |
|
載入圖片集合。 |
|
將圖片儲存到檔案。 |
|
從外部產生的檔案讀取 SIFT 或 SURF 特徵。 |
|
從外部產生的檔案讀取 SIFT 或 SURF 特徵。 |
|
從共用圖片堆疊中彈出圖片。 |
|
將圖片推入共用圖片堆疊。 |
|
載入和管理圖片檔案集合。 |
|
一個包含多幀 TIFF 圖片的所有幀的類別。 |
- skimage.io.concatenate_images(ic)[原始碼]#
將圖片集合中的所有圖片串連成一個陣列。
- 參數:
- ic圖片的可迭代物件
要串連的圖片。
- 回傳值:
- array_catndarray
一個比
ic
中的圖片多一個維度的陣列。
- 引發:
- ValueError
如果
ic
中的圖片形狀不一致。
註解
concatenate_images
接收任何包含圖片的可迭代物件,包括 ImageCollection 和 MultiImage,並回傳一個 NumPy 陣列。
- skimage.io.imread(fname, as_gray=False, plugin=<已棄用>, **plugin_args)[原始碼]#
從檔案載入圖片。
- 參數:
- fnamestr 或 pathlib.Path
圖片檔案名稱,例如
test.jpg
或 URL。- as_graybool,選用
如果為 True,則將彩色圖片轉換為灰階(64 位元浮點數)。已經是灰階格式的圖片不會被轉換。
- 回傳值:
- img_arrayndarray
不同的顏色帶/通道儲存在第三個維度中,因此灰階圖片是 MxN,RGB 圖片是 MxNx3,RGBA 圖片是 MxNx4。
- 其他參數:
- plugin_args已棄用
外掛程式基礎架構已棄用。
- plugin已棄用
plugin
已棄用。自版本 0.25 起已棄用。
- skimage.io.imread_collection(load_pattern, conserve_memory=True, plugin=<已棄用>, **plugin_args)[原始碼]#
載入圖片集合。
- 參數:
- load_patternstr 或 list
要載入的物件列表。這些通常是檔案名稱,但可能會因目前啟用的外掛程式而異。請參閱
ImageCollection
以了解此參數的預設行為。- conserve_memorybool,選用
如果為 True,則在特定時間內永遠不會將多個圖片保留在記憶體中。否則,圖片一旦載入就會被快取。
- 回傳值:
- ic
ImageCollection
圖片集合。
- ic
- 其他參數:
- plugin_args已棄用
外掛程式基礎架構已棄用。
- plugin已棄用
plugin
已棄用。自版本 0.25 起已棄用。
- skimage.io.imsave(fname, arr, plugin=<已棄用>, *, check_contrast=True, **plugin_args)[原始碼]#
將圖片儲存到檔案。
- 參數:
- fnamestr 或 pathlib.Path
目標檔案名稱。
- arr形狀為 (M,N) 或 (M,N,3) 或 (M,N,4) 的 ndarray
圖片資料。
- check_contrastbool,選用
檢查對比度是否過低並列印警告(預設值:True)。
- 其他參數:
- plugin_args已棄用
外掛程式基礎架構已棄用。
- plugin已棄用
plugin
已棄用。自版本 0.25 起已棄用。
- 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
。- 參數:
- filelike字串或開啟的檔案
來自 http://people.cs.ubc.ca/~lowe/keypoints/ 或 http://www.vision.ee.ethz.ch/~surf/ 的特徵偵測器產生的輸入檔案。
- mode{‘SIFT’, ‘SURF’},選用
用於產生
filelike
的描述子種類。
- 回傳值:
- data具有欄位的記錄陣列
- row: int
特徵的列位置
- column: int
特徵的欄位置
- scale: float
特徵縮放
- orientation: float
特徵方向
- data: array
特徵值
- 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
。- 參數:
- filelike字串或開啟的檔案
來自 http://people.cs.ubc.ca/~lowe/keypoints/ 或 http://www.vision.ee.ethz.ch/~surf/ 的特徵偵測器產生的輸入檔案。
- mode{‘SIFT’, ‘SURF’},選用
用於產生
filelike
的描述子種類。
- 回傳值:
- data具有欄位的記錄陣列
- row: int
特徵的列位置
- column: int
特徵的欄位置
- scale: float
特徵縮放
- orientation: float
特徵方向
- data: array
特徵值
- class skimage.io.ImageCollection(load_pattern, conserve_memory=True, load_func=None, **load_func_kwargs)[原始碼]#
基底:
object
載入和管理圖片檔案集合。
- 參數:
- load_patternstr 或 str 的列表
要載入的模式字串或字串列表。檔案名稱路徑可以是絕對或相對的。
- conserve_memorybool,選用
如果為 True,則
skimage.io.ImageCollection
在特定時間內不會將多個圖片保留在記憶體中。否則,圖片一旦載入就會被快取。
- 屬性:
- filesstr 的列表
如果為
load_pattern
提供模式字串,則此屬性會儲存展開的檔案列表。否則,此屬性等於load_pattern
。
- 其他參數:
- load_func可呼叫物件
預設為
imread
。請參閱下面的註解。- **load_func_kwargsdict
任何其他關鍵字引數都會傳遞到
load_func
。
註解
請注意,檔案永遠會以字母順序回傳。另請注意,切片會回傳新的
skimage.io.ImageCollection
,而不是資料的檢視。影像集合的影像載入可以透過
load_func
進行客製化。對於一個影像集合ic
,ic[5]
會呼叫load_func(load_pattern[5])
來載入該影像。例如,這裡有一個影像集合,針對提供的每個影片,載入每隔一幀的畫面
import imageio.v3 as iio3 import itertools def vidread_step(f, step): vid = iio3.imiter(f) return list(itertools.islice(vid, None, None, step) video_file = 'no_time_for_that_tiny.gif' ic = ImageCollection(video_file, load_func=vidread_step, step=2) ic # is an ImageCollection object of length 1 because 1 video is provided x = ic[0] x[5] # the 10th frame of the first video
或者,如果提供了
load_func
且load_pattern
是一個序列,則會建立一個對應長度的skimage.io.ImageCollection
,並且會呼叫load_func
並以load_pattern
中匹配的元素作為第一個引數來載入個別的影像。在這種情況下,序列中的元素不需要是現有檔案的名稱(或任何字串)。例如,要從一個影片建立一個包含 500 張影像的skimage.io.ImageCollection
class FrameReader: def __init__ (self, f): self.f = f def __call__ (self, index): return iio3.imread(self.f, index=index) ic = ImageCollection(range(500), load_func=FrameReader('movie.mp4')) ic # is an ImageCollection object of length 500
load_func
的另一個用途是將所有影像轉換為uint8
def imread_convert(f): return imread(f).astype(np.uint8) ic = ImageCollection('/tmp/*.png', load_func=imread_convert)
範例
>>> import imageio.v3 as iio3 >>> import skimage.io as io
# 你的影像所在位置 >>> data_dir = os.path.join(os.path.dirname(__file__), ‘../data’)
>>> coll = io.ImageCollection(data_dir + '/chess*.png') >>> len(coll) 2 >>> coll[0].shape (200, 200)
>>> image_col = io.ImageCollection([f'{data_dir}/*.png', '{data_dir}/*.jpg'])
>>> class MultiReader: ... def __init__ (self, f): ... self.f = f ... def __call__ (self, index): ... return iio3.imread(self.f, index=index) ... >>> filename = data_dir + '/no_time_for_that_tiny.gif' >>> ic = io.ImageCollection(range(24), load_func=MultiReader(filename)) >>> len(image_col) 23 >>> isinstance(ic[0], np.ndarray) True
- concatenate()[來源]#
將集合中的所有影像串聯成一個陣列。
- 回傳值:
- arnp.ndarray
一個比
self
中的影像多一個維度的陣列。
- 引發:
- ValueError
如果
skimage.io.ImageCollection
中的影像沒有相同的形狀。
- property conserve_memory#
- property files#
- class skimage.io.MultiImage(filename, conserve_memory=True, dtype=None, **imread_kwargs)[來源]#
-
一個包含多幀 TIFF 圖片的所有幀的類別。
- 參數:
- load_patternstr 或 str 的列表
要載入的 glob 模式或檔案名稱。路徑可以是絕對或相對路徑。
- conserve_memorybool,選用
是否僅快取單一影像的幀來節省記憶體。預設值為 True。
註解
MultiImage
會傳回影像資料陣列的列表。在這方面,它與ImageCollection
非常相似,但兩者在處理多幀影像的方式上有所不同。對於一個包含 N 個大小為 WxH 的幀的 TIFF 影像,
MultiImage
會將該影像的所有幀儲存為列表中形狀為(N, W, H)
的單一元素。ImageCollection
則會建立 N 個形狀為(W, H)
的元素。對於動畫 GIF 影像,
MultiImage
只會讀取第一幀,而ImageCollection
預設會讀取所有幀。範例
# 你的影像所在位置 >>> data_dir = os.path.join(os.path.dirname(__file__), ‘../data’)
>>> multipage_tiff = data_dir + '/multipage.tif' >>> multi_img = MultiImage(multipage_tiff) >>> len(multi_img) # multi_img contains one element 1 >>> multi_img[0].shape # this element is a two-frame image of shape: (2, 15, 10)
>>> image_col = ImageCollection(multipage_tiff) >>> len(image_col) # image_col contains two elements 2 >>> for frame in image_col: ... print(frame.shape) # each element is a frame of shape (15, 10) ... (15, 10) (15, 10)
- concatenate()[來源]#
將集合中的所有影像串聯成一個陣列。
- 回傳值:
- arnp.ndarray
一個比
self
中的影像多一個維度的陣列。
- 引發:
- ValueError
如果
skimage.io.ImageCollection
中的影像沒有相同的形狀。
- property conserve_memory#
- property filename#
- property files#