成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

讀取函數(shù)代碼python python讀取nii

Python的各種imread函數(shù)在實現(xiàn)方式和讀取速度上有何區(qū)別

1. PIL.Image.open

創(chuàng)新互聯(lián)長期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為稷山企業(yè)提供專業(yè)的成都網(wǎng)站制作、做網(wǎng)站,稷山網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

代碼在這里:Pillow/Image.py at 3.1.x · python-pillow/Pillow · GitHub

open() 函數(shù)打開圖像,但并不讀入,直到有操作發(fā)生。

具體的讀取操作是在 ImageFile.py 寫的。大體流程是先檢測文件類型,整塊地讀入文件內(nèi)容,然后調(diào)用解碼器解碼,做了很多優(yōu)化,效率應(yīng)該還是很高的。

2. scipy.ndimage.imread

代碼在這里:scipy/io.py at v0.17.1 · scipy/scipy · GitHub

imread 調(diào)用 scipy.misc.pilutil.imread。從名字就能看出來其實調(diào)用的還是 Pillow。

根據(jù) pilutil 代碼:scipy/pilutil.py at v0.17.1 · scipy/scipy · GitHub

確實是調(diào)用 pil.image.open(),然后返回一個 fromimage()。

3. scipy.misc.imread

misc 的 __init__.py 在這里:scipy/__init__.py at v0.17.1 · scipy/scipy · GitHub

調(diào)用的還是 pilutil 中的 imread

相關(guān)代碼如下

try:

from .pilutil import *

from . import pilutil

__all__ += pilutil.__all__

del pilutil

except ImportError:

pass

也算是學(xué)了一招,從 pilutil 導(dǎo)入其所有函數(shù)添加到當前空間,然后又刪除了 pilutil 消除影響。

4. skimage.io.imread

代碼在這里:scikit-image/_io.py at master · scikit-image/scikit-image · GitHub

是通過插件 plugin 來讀入不同的文件,而且會試用幾個不同的 plugins 來找到合適的。

使用 call_plugin 來調(diào)用,代碼在這里:scikit-image/manage_plugins.py at master · scikit-image/scikit-image · GitHub

可以根據(jù)如下代碼查看插件調(diào)用的優(yōu)先級

# For each plugin type, default to the first available plugin as defined by

# the following preferences.

preferred_plugins = {

# Default plugins for all types (overridden by specific types below).

'all': ['pil', 'matplotlib', 'qt', 'freeimage'],

'imshow': ['matplotlib'],

'imshow_collection': ['matplotlib']

}

plugins 的源代碼在這里:scikit-image/skimage/io/_plugins at master · scikit-image/scikit-image · GitHub??梢钥吹?pil 的 imread,是用 open 打開圖像之后,再轉(zhuǎn)換成 ndarray。

5. cv2.imread

這里是調(diào)用的 CV::imread(),代碼在這里:opencv/loadsave.cpp at master · opencv/opencv · GitHub。一般來說 C\C++ 的實現(xiàn),應(yīng)該比 python 速度快一點。

6. matplotlib.image.imread

matplotlib 的文檔里面說,matplotlib 原生只可以讀取 PNG 文件,有 PIL 的時候,可以讀取其他類型的文件。如果使用 URL 打開在線圖像文件,需要符合 PIL 的文檔要求。

matplotlib.image.imread 的代碼在這里:matplotlib/image.py at master · matplotlib/matplotlib · GitHub。matplotlib 的原生 PNG 讀取和寫入,是用 C 實現(xiàn)的,代碼在這里:matplotlib/_png.cpp at master · matplotlib/matplotlib · GitHub。

matplotlib 是先用 pil 的 open 打開圖像,如果格式是 png,就用原生方法打開。相關(guān)代碼如下:

handlers = {'png': _png.read_png, }

if format is None:

if cbook.is_string_like(fname):

parsed = urlparse(fname)

# If the string is a URL, assume png

if len(parsed.scheme) 1:

ext = 'png'

else:

basename, ext = os.path.splitext(fname)

ext = ext.lower()[1:]

elif hasattr(fname, 'name'):

basename, ext = os.path.splitext(fname.name)

ext = ext.lower()[1:]

else:

ext = 'png'

else:

ext = format

if ext not in handlers:

im = pilread(fname)

if im is None:

raise ValueError('Only know how to handle extensions: %s; '

'with Pillow installed matplotlib can handle '

'more images' % list(six.iterkeys(handlers)))

return im

聲明的處理器只有 png。如果是 png 文件,調(diào)用 _png.read_png。如果不是 png 直接使用 pilread(就是用 pil 的 Image.open 然后 pil_to_array)。

matplotlib 的源碼確實比較復(fù)雜,一大部分主體是用 C 寫的,改動很激進,功能更新猛烈。

python實現(xiàn)讀取硬盤卷標函數(shù),希望獲取到磁盤的卷標信息

代碼:

import?os

data?=?os.popen("wmic?VOLUME?GET?Label").read()

print?data.decode("gb2312")

執(zhí)行結(jié)果:

正好是我電腦的5個磁盤的卷標。注意Label下面那行是空行,表示那個盤沒設(shè)置卷標。

請教,python中如何獲取函數(shù)的實現(xiàn)源碼

例如stat位于os module,那么可以help(os),出現(xiàn)如上圖的結(jié)果,其中FILE就是其源文件位置,當然,如果這個module是c module,那就看不到相應(yīng)的源碼了。

你提到os模塊中沒有stat這個函數(shù),那時因為它在posix或者nt module中實現(xiàn),os模塊根據(jù)當前的操作系統(tǒng)來導(dǎo)入相應(yīng)的實現(xiàn)。

文章題目:讀取函數(shù)代碼python python讀取nii
當前鏈接:http://jinyejixie.com/article2/dosgsoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、企業(yè)建站、軟件開發(fā)、網(wǎng)站維護、關(guān)鍵詞優(yōu)化、定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
关岭| 甘肃省| 诸城市| 巢湖市| 连江县| 武夷山市| 班戈县| 宁明县| 南溪县| 湘潭县| 启东市| 定结县| 常州市| 阳江市| 大化| 乐昌市| 金平| 郎溪县| 隆安县| 师宗县| 肇州县| 柘城县| 灵山县| 盐源县| 横山县| 和顺县| 东山县| 嘉善县| 鄂伦春自治旗| 阳新县| 青神县| 威信县| 湘西| 思南县| 长泰县| 江山市| 东港市| 新源县| 武宣县| 鹰潭市| 外汇|