ImagePy開發文檔 —— 圖像封裝類

ImagePy 是一款基於 Python 的可擴展圖像處理框架,可謂是 Python 版的 ImageJ,但設計更為精簡,可以輕鬆接入 scipy, scikit-image, opencv 等任何基於 numpy 的圖像處理庫。

Github地址:下載地址 主頁:imagepy.org/

ImagePlus

ImagePy 採用 Numpy 數組作為圖像數據結構,Numpy 非常強大,但是要讓它能夠支持我們的全部特性(索引色支持,撤銷,選區支持,多通道支持,圖像棧支持),還需要一些其他的數據給予必要的輔助,因而我們有了ImagePlus類

結構圖

我們可以看出,ImagePlus 確切說是一個 Numpy的容器,它裝載了若干張圖片,一張緩衝圖,一個選區,一個掩膜,以及一個標記。

  • 圖像序列與當前圖像

    我們知道,ImagePlus 能夠存儲一系列的圖片,然而時刻我們只能展示其中一張,這樣就有了游標和當前圖像的概念。我們可以獲取圖像列表,也可以獲取當前圖像。

  • look up table

    索引色是存放在 ImagePlus 中的,如果是單通道圖像,那麼在圖像被繪製在 Canvas 上時,會自動套用索引。

  • snapshot

    ImagePlus 為我們準備了一個緩衝圖像,最直觀的看,它可以實現一步撤銷功能。其實更重要的是,在一些濾波器運算中,我們必須有一張緩衝副本,才能夠實施演算法。有了snap的存在,可以節省不必要的內存開支,經濟高效的完成一些任務。

  • reset

    幫助我們利用快照恢復當前圖像,如果有掩膜存在,則只恢復掩膜內的像素。

  • swap

    交換快照與當前圖像,這就是ImagePy撤銷的實現,由於之緩存了一張,因此多次撤銷只能兩附圖來回切換。

  • roi 與 mask

    roi 是通過交互完成的選區,而 mask 則是一張二值的標記圖像。(很多時候,ImagePy自動用roi繪製mask)

  • mark

    之和顯示相關,在圖像上展示必要的提示信息。

    這些額外的信息能夠幫助我們完成很多事情,比如 roi>mask + snap + reset選取外的內容,這樣就實現了只對選區內的像素做處理的功能。本質上是整副圖像都已經處理過,隨後利用鏡像回複選區以外的內容,看起來就像,之處理了選區內的像素。

類總覽

成員

imgs:所持有的圖像序列,(即便只有一張,也是作為序列)

imgtype:圖像類型,他們有』8-bit』,』16-bit』,』rgb』,』float』

title:圖像的標題

snap:圖像快照

roi:與之相關的選區

mark:與之相關的標記

msk:掩膜(多是由選區自動生成)

lut:索引表

方法

設定屬性

set_imgs:設定圖像序列

set_cur:設定當前幀

set_title:設定圖像標題

獲取屬性

get_img:獲取當前圖像

get_imgtype:獲取圖像類型

get_nslices:獲取圖像列表總數

get_nchannels:獲取圖像通道數

get_msk:獲取掩膜

像素輔助操作

snapshot:對圖像進行快照

reset:用快照恢復

swap:交換快照和前景

圖像和圖像棧

ImagePlus 的構造是或設定圖像時需要傳入圖像序列 imgs,本質上是一個圖像容器,可以裝一張,也可以裝多張。但是注意有如下區別

  • 單圖

    單圖的傳入,也需要構造一個序列:[img]

  • 多圖

    對於多圖,有兩種形式,離散列表和連續棧。

    1.離散列表 [img1, img2, img3…]

    2.連續棧 3d/4d Numpy array

    其中離散列表內存不連續,因而可以隨時插入或刪除切片,而連續棧在計算機中佔據連續內存,這為一些計算提供了方便,但卻不能動態的添加或刪除切片。
  • 混淆

    如果現在有一張三通道的彩色圖片,注意如下兩種構造的區別:

    1.[rgb] 表示一個離散列表,裡面裝有一張彩色圖像。

    2.rgb 則表示是一個連續棧,裡面裝有三張圖像。

如希望閱讀更多關於ImagePy的內容,請 回到 ImagePy 文檔目錄


推薦閱讀:

美圖公司的實驗室 MeituLabs 如何,有哪些大牛?
使用灰度共生矩陣 GLCM 提取影像紋理信息
1.21【OpenCV圖像處理】霍夫圓變換
萌新初入手圖像處理,想知道feature map 和activation map分別是指什麼?
[171105] 基於 Python OpenCV 圖像處理的車道線檢測

TAG:numpy | 图像处理 | Python |