图像的读取,显示与保存(基于skimage模块)
一 skiamge模塊
skimage包的全稱是scikit-image?SciKit (toolkit for?SciPy) ,它對(duì)scipy.ndimage進(jìn)行了擴(kuò)展,提供了更多的圖片處理功能。它是由python語言編寫的,由scipy 社區(qū)開發(fā)和維護(hù)。skimage包由許多的子模塊組成,各個(gè)子模塊提供不同的功能。主要子模塊列表如下:
| 子模塊名稱 | 主要實(shí)現(xiàn)功能 |
| io | 讀取、保存和顯示圖片或視頻 |
| data | 提供一些測試圖片和樣本數(shù)據(jù) |
| color | 顏色空間變換 |
| filters | 圖像增強(qiáng)、邊緣檢測、排序?yàn)V波器、自動(dòng)閾值等 |
| draw | 操作于numpy數(shù)組上的基本圖形繪制,包括線條、矩形、圓和文本等 |
| transform | 幾何變換或其它變換,如旋轉(zhuǎn)、拉伸和拉東變換等 |
| morphology | 形態(tài)學(xué)操作,如開閉運(yùn)算、骨架提取等 |
| exposure | 圖片強(qiáng)度調(diào)整,如亮度調(diào)整、直方圖均衡等 |
| feature | 特征檢測與提取等 |
| measure | 圖像屬性的測量,如相似性或等高線等 |
| segmentation | 圖像分割 |
| restoration | 圖像恢復(fù) |
| util | 通用函數(shù) |
用到一些圖片處理的操作函數(shù)時(shí),需要導(dǎo)入對(duì)應(yīng)的子模塊,如果需要導(dǎo)入多個(gè)子模塊,則用逗號(hào)隔開,如:
from skimage import io,data,color二 從外部讀取圖片并顯示
2.1 彩色圖片
- 讀取單張彩色RGB圖片,使用skimage.io.imread(fname)函數(shù),帶一個(gè)參數(shù),表示需要讀取的文件路徑。
- 顯示圖片使用skimage.io.imshow(arr)函數(shù),帶一個(gè)參數(shù),表示需要顯示的arr數(shù)組(讀取的圖片以numpy數(shù)組形式計(jì)算)。
結(jié)果如下圖所示:
2.1 灰度圖片
- 讀取使用skimage.io.imread(fname,as_grey=True)函數(shù),第一個(gè)參數(shù)為圖片路徑,第二個(gè)參數(shù)為as_grey, bool型值,默認(rèn)為False。
- 顯示圖片使用skimage.io.imshow(arr)函數(shù),帶一個(gè)參數(shù),表示需要顯示的arr數(shù)組(讀取的圖片以numpy數(shù)組形式計(jì)算)。
結(jié)果如下所示:
三 程序自帶圖片讀取與顯示
skimage程序自帶了一些示例圖片,如果我們不想從外部讀取圖片,就可以直接使用這些示例圖片:
| astronaut | 宇航員圖片 | coffee | 一杯咖啡圖片 | lena | lena美女圖片 |
| camera | 拿相機(jī)的人圖片 | coins | 硬幣圖片 | moon | 月亮圖片 |
| checkerboard | 棋盤圖片 | horse | 馬圖片 | page | 書頁圖片 |
| chelsea | 小貓圖片 | hubble_deep_field | 星空圖片 | text | 文字圖片 |
| clock | ?時(shí)鐘圖片 | immunohistochemistry | 結(jié)腸圖片 | ? | ? |
舉例如下:
from skimage import io,data img=data.astronaut() io.imshow(img)結(jié)果如下所示:
圖片名對(duì)應(yīng)的就是函數(shù)名,如camera圖片對(duì)應(yīng)的函數(shù)名為camera()。
四 保存圖片
使用io模塊的imsave(fname,arr)函數(shù)來實(shí)現(xiàn)。第一個(gè)參數(shù)表示保存的路徑和名稱,第二個(gè)參數(shù)表示需要保存的數(shù)組變量。
from skimage import io,data img=data.chelsea() io.imshow(img) io.imsave('d:/cat.jpg',img)結(jié)果如下所示:
五 圖片的信息
如果我們想知道一些圖片信息,可以通過Variable explorer讀取:
當(dāng)然我們也可以通過程序獲得:
from skimage import io,data img=data.chelsea() io.imshow(img) print(type(img)) #顯示類型 print(img.shape) #顯示尺寸 print(img.shape[0]) #圖片寬度 print(img.shape[1]) #圖片高度 print(img.shape[2]) #圖片通道數(shù) print(img.size) #顯示總像素個(gè)數(shù) print(img.max()) #最大像素值 print(img.min()) #最小像素值 print(img.mean()) #像素平均值結(jié)果如下所示:
(300, 451, 3)
300
451
3
405900
231
0
115.305141661
參考:https://www.cnblogs.com/denny402/p/5121897.html
轉(zhuǎn)載于:https://www.cnblogs.com/Terrypython/p/9941553.html
總結(jié)
以上是生活随笔為你收集整理的图像的读取,显示与保存(基于skimage模块)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于C#局域网语音聊天
- 下一篇: DAPP开发初探——永存的留言