成人av在线资源一区,亚洲av日韩av一区,欧美丰满熟妇乱XXXXX图片,狠狠做五月深爱婷婷伊人,桔子av一区二区三区,四虎国产精品永久在线网址,国产尤物精品人妻在线,中文字幕av一区二区三区欲色
    您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
    此為臨時鏈接,僅用于文章預覽,將在時失效
    人工智能 正文
    發私信給skura
    發送

    0

    ImagePy——UI界面支持開放插件的Python開源圖像處理框架

    本文作者: skura 2018-12-29 16:53
    導語:github 開源圖像處理軟件 ImagePy 的介紹和使用示例

    雷鋒網 AI 科技評論按,ImagePy 是一款 python 開源圖像處理框架,其 UI 界面支持開放插件。在 github:https://github.com/Image-Py/imagepy 上,不僅有關于這款圖像處理軟件的詳細介紹,還有一些使用示例,雷鋒網 AI 科技評論接下來將詳細介紹這一開源圖像處理框架。

    ImagePy 是一款基于 imagej 等插件的圖像處理框架,它可以與 scipy.ndimage、scikit-image、opencv、simpleitk、mayavi 以及任何基于 numpy 的庫進行組合使用,其地址為 http://imagepy.org

    ImagePy——UI界面支持開放插件的Python開源圖像處理框架

    簡介

    ImagePy 是用 python 編寫的開源圖像處理框架。它的 UI 接口、圖像數據結構和表數據結構分別是基于 wxpython、numpy 和 pandas 的。此外,它支持任何基于 numpy 和 pandas 的插件,這些插件可以輕松地在 scipy.ndimage、scikit-image、simpleitk、opencv 和其他圖像處理庫之間進行通信。

    ImagePy——UI界面支持開放插件的Python開源圖像處理框架

    概覽,鼠標測量,幾何變換,過濾,分割,計數等

    ImagePy——UI界面支持開放插件的Python開源圖像處理框架

    如果你更喜歡 IJ 樣式,請嘗試使用「 Windows  ->  Windows Style 」來切換

    ImagePy:

    • 具有用戶友好的界面;

    • 可以讀取/保存各種格式的圖像數據;

    • 支持 ROI 設置、繪圖、測量和其他鼠標操作;

    • 可以執行圖像濾波、形態學操作和其他常規操作;

    • 可以進行圖像分割、區域計數、幾何測量和密度分析;

    • 能夠對從圖像中提取的參數進行相關的數據分析、濾波、統計分析等。

    這個項目的長期目標是成為 ImageJ 和 SPSS 的聯合體。

    地址:

    https://academic.oup.com/bioinformatics/article-abstract/34/18/3238/4989871?redirectedFrom=fulltext

    安裝:

    支持的系統:帶有 python2.7 和 python3 及以上版本的 windows、linux、mac 系統。

    1. ImagePy 是一個基于 wxpython 的 ui 框架,它不能在 linux 上用 pip 進行安裝。你需要下載和你的 linux 系統相匹配的 whl文件。

    2. 因為 ImagePy 會編寫一些配置信息,因此,在 linux 和 mac 系統上,可能會存在權限問題,所以請從 sudo 命令開始。如果使用 pip 安裝,請按照下面的方法來添加用戶參數:pipsinstall--user imagepy。

    3. 如果在 anaconda 虛擬環境中安裝 ImagePy,那么你可能會遇到這樣的錯誤:這個程序需要屏幕訪問權限。請使用 python 構建的框架來運行,并且只有在你已經登錄到主顯示器上時才這樣做,如果遇到這個問題,請從 pythonw-m 鏡像開始。

    基本操作:

    ImagePy 有一組非常豐富的特性,在這里,我們使用一個具體的示例向你展示 ImagePy 的這些特性。我們選擇官方使用 scikit-image 來分割硬幣的例子,因為這個例子簡單而全面。

    打開圖像

    菜單打開:file -> local samples -> coins,來打開 ImagePy 中的示例圖像。ps:ImagePy 支持 bmp、jpg、png、gif、tif 和其他常用的文件格式。通過安裝 ITK 插件,還可以讀取/保存 dicom、nii 和其他格式的醫學圖像。如果安裝了 opencv,還可以讀/寫 wmv、avi 和其他格式的視頻。

    ImagePy——UI界面支持開放插件的Python開源圖像處理框架

    硬幣

    過濾與分割

    選擇一個復合濾波器對圖像進行 sobel 梯度提取,然后使用上下閾值作為標記,最后在梯度圖上進行 watersheds 分割。濾波和分割是圖像處理工具包中的關鍵技術,也是最終測量成敗的關鍵。還支持諸如自適應閾值、watersheds 等分割方法。

    ImagePy——UI界面支持開放插件的Python開源圖像處理框架

    Up And Down Watershed 分割

    ImagePy——UI界面支持開放插件的Python開源圖像處理框架

    掩模

    二值化

    菜單打開:process -> binary -> binary fill holes

    分割后得到的掩模圖像比較干凈,但仍存在一些空洞和雜質,干擾了計數和測量。ImagePy 支持二進制操作,如腐蝕、膨脹、開環和閉環,以及輪廓提取、中心軸提取和距離轉換。

    ImagePy——UI界面支持開放插件的Python開源圖像處理框架

    填洞

    幾何濾波

    菜單打開:analysis -> region analysis -> geometry filter

    ImagePy 可以根據面積、周長、拓撲、穩定性和離心率等參數進行幾何濾波。還可以使用多個條件進行篩選。每個數字可以是正的(或者負的),這表示所保存的對象的相應參數分別大于(或者小于)相對值。保存的對象將被設置為前色,拒絕的對象將被設置為背景色。在這個演示中,背景顏色設置為 100,以便查看有哪些對象被過濾掉了。一旦對結果滿意,就將背景色設置為 0。此外,ImagePy 還支持灰度密度濾波、顏色濾波、顏色聚類等功能。

    ImagePy——UI界面支持開放插件的Python開源圖像處理框架

    幾何濾波

    幾何分析

    菜單打開:process -> region analysis -> geometry analysis count,計算面積并分析參數。通過選擇 cov 選項,ImagePy 使用通過協方差計算的橢圓擬合每個區域。這里計算前面步驟中所示的參數,如面積、周長、離心率和穩定性。事實上,前一步的濾波正是對這一步的準備。

    ImagePy——UI界面支持開放插件的Python開源圖像處理框架

    幾何分析

    ImagePy——UI界面支持開放插件的Python開源圖像處理框架

    生成結果表(背景是黑色,以強調橢圓)

    按區域對表進行排序

    菜單打開:table -> statistic -> table sort by key

    選擇主鍵作為區域,并選擇 descend,表將按面積的降序排序。表是除了圖像之外的另一項重要數據。從某種意義上來說,很多時候我們需要獲得圖像的相關信息,然后以表的形式對數據進行后續處理。ImagePy 支持表 I/O(xls、xlsx、csv)、過濾、切片、統計分析、排序等等(右鍵單擊列標題來設置文本顏色、小數精度、行樣式等)。

    ImagePy——UI界面支持開放插件的Python開源圖像處理框架

    圖表

    菜單打開:table -> chart -> hist chart

    我們經常需要利用表格數據來繪制一個圖表。這里,我們繪制了某個區域和其周邊列的直方圖。ImagePy 的表可以用于繪制常見的圖表,如柱狀圖、餅圖、直方圖和散點圖(基于 matplotlib)。該圖表帶有縮放、移動和其他功能,并可以保存為圖像。

    ImagePy——UI界面支持開放插件的Python開源圖像處理框架

    直方圖

    3D 表格

    菜單打開:kit3d -> viewer 3d -> 2d surface

    圖像的表面重建。這幅圖像顯示了三種方式的重建結果,包括:sobel 梯度圖、高閾值和低閾值。它顯示了 Up And Down Watershed 是如何工作的:

    • 計算梯度;

    • 通過高低閾值標記硬幣和背景;

    • 在 dem 圖表上模擬上升 water 來形成分割線。

    ImagePy 可以完成圖像的 3d 濾波、3d 輪廓構建、3d 拓撲分析、2d 表面重建和 3d 表面可視化。3d 視圖可以被自由拖動、旋轉,其結果可以保存為.stl 文件。

    ImagePy——UI界面支持開放插件的Python開源圖像處理框架

    3d 可視化

    宏記錄和執行

    菜單打開:window -> develop tool suite

    宏記錄器顯示在開發工具面板中。我們已經手動完成了一個圖像的分割。然而,用這種方式一下子處理超過 10 幅圖像是非常乏味的。因此,假設在處理這些問題的時候,這些步驟具有高度的可重復性和健壯性,我們可以記錄一個宏,以便將幾個處理過程組合成一個單擊程序。宏記錄器與無線電記錄器相似。打開后,它將記錄操作的每個步驟。我們可以點擊暫停按鈕停止錄制,也可以點擊播放按鈕開始錄制。當宏運行時,所記錄的命令將按照順序執行,因此它具有簡單性和可再現性。

    宏被保存到 .mc 文件中。將文件拖放到 ImagePy 底部的狀態欄中,宏將自動執行。我們還可以將 .mc 文件復制到 ImagePy 文件目錄下的菜單的子菜單中。當啟動 ImagePy 時,宏文件將被解析為相應位置的菜單項。通過單擊菜單,宏將被執行。

    ImagePy——UI界面支持開放插件的Python開源圖像處理框架

    宏記錄

    Workflow

    宏是一系列預定義的命令。通過將一系列固定操作記錄到宏中,可以提高工作效率。然而,宏缺乏靈活性。例如,有時主要步驟是固定的,但是參數調優需要人工參與。在這種情況下,workflow 就可以解決這個問題。ImagePy 中的 workflow 是可視化的流程圖,分為兩個層次:章節和部分。本章對應于 workflow 中的矩形區域,并且該部分是矩形區域中的按鈕,也是命令,并附有圖形說明。右邊的消息窗口將顯示相應的功能描述,同時鼠標懸停在上面。單擊右上角的“詳細文檔”,查看整個過程的說明文檔。

    workflow 實際上是用 MarkDown(一種標記語言)編寫的,但是在編寫時你需要遵守以下規范:

    Title
    =====

    ## Chapter1

    1.  Section1
    some coment for section1 ...

    2.  ...

    ##  Chapter 2
    ...

    ImagePy——UI界面支持開放插件的Python開源圖像處理框架

    workflow

    濾波器插件

    在最后一節中,我們介紹了宏和 workflow,使用宏和 workflow 連接現有功能很方便。但有時我們需要創建新的特性。在本節中,我們將嘗試向 ImagePy 添加一個新特性。ImagePy 可以輕松訪問任何基于 numpy 的函數。讓我們以 scikit-image 的 canny 操作符為例。

    示例代碼如下:

    from skimage import feature

    from imagepy.core.engine import Filter


    class Plugin( Filter ):

       title = 'Canny'
       note = [ 'all' ,  'auto_msk' ,  'auto_snap' ,  'preview' ]

       para = { 'sigma' : 1.0 ,  'low_threshold' : 10 ,  'high_threshold' : 20 }

       view = [ ( float ,  'sigma' ,  ( 0 , 10 ) ,  1 ,  'sigma' ,  'pix' ) ,
               ( 'slide' ,  'low_threshold' ,  ( 0, 50 )  ,  4 ,  'low_threshold' )  ,
               ('slide' , 'high_threshold' , ( 0 , 50 ) ,  4 ,  'high_threshold' ) ]


    def run ( self ,  ips ,  snap , img ,  para = None ) :   

          return feature.canny (snap ,  para[ 'sigma' ] , para[ 'low_threshold' ] ,
           para[ 'high_threshold' ] , mask = ips.get_msk () ) * 255

    ImagePy——UI界面支持開放插件的Python開源圖像處理框架

    Canny 濾波器示例

    創建自己的濾波器的步驟:

    1. 導入對應的庫,通常是第三方庫。

    2. 繼承 filter 類。

    3. 標題將用作菜單的名稱和參數對話框的標題,也用作宏記錄的命令。

    4. 在 note 中告訴框架它需要為你做什么,是否進行類型檢查、是否支持選擇、是否支持 UNDO 等等。

    5. para 是一個參數字典,包含函數所需的參數。

    6. 為視圖中的每個參數定義交互方法,框架將通過讀取這些信息自動生成用于參數調優的對話框。

    7. 編寫主函數 run。img 是當前圖像,para 是用戶的輸入參數。如果在 note 中設置了 auto_snap,snap 將是 img 的一個副本。我們可以處理這個副本,將結果存儲在 img 中。如果函數不支持指定的輸出,我們還可以返回結果,框架將幫助我們將結果復制到 img 并顯示它。

    8. 將文件保存為 xxx_plg.py,然后復制到菜單文件夾,重新啟動 ImagePy。它將被作為菜單項加載。

    這個框架為我們做了什么?

    該框架以正式的方式把復雜的任務融合在一起,并幫助我們執行了:

    • 類型檢查。如果當前圖像類型不滿足注釋中的要求,則終止分析;

    • 根據參數,自動生成對話框以并檢測輸入的合法性;

    • 實時預覽;

    • 自動 ROI 支持;

    • 撤消支持;

    • 并行化支持;

    • 圖像堆棧支持;

    • 其它。

    如前所述,表是除了圖像之外的另一種非常重要的數據類型。類似地,ImagePy 也支持表的擴展。這里我們給出在前面描述中使用的按鍵排序的示例。

    代碼為:

    from imagepy.core.engine import Table

    import pandas as pd


    class Plugin( Table ) :
       title = 'Table Sort By Key'
       para = { 'major':None , 'minor' : None ,  'descend' : False }

     
     view = [ ( 'field' ,  'major' ,  'major' ,  'key' ) ,
           ( 'field' ,  'minor' ,  'minor' ,  'key' ) ,
           ( bool ,  'descend' ,  'descend' ) ]


    def run( self ,  tps ,  data ,  snap ,  para = None ) :
       by = [ para[ 'major' ] ,  para[ 'minor' ] ]
       data.sort_values( by = [ i for i in by if i ! =  'None' ],      

                               axis = 0 ,  ascending = not  para[ 'descend' ] ,  inplace = True )

    ImagePy——UI界面支持開放插件的Python開源圖像處理框架

    表排序示例

    表是如何工作的

    與濾波器相同,表中還有標題(title)、注釋(note)、參數(para)、視圖(view)等參數。當插件運行時,框架將根據和視圖生成一個對話框。在選擇 para 之后,將它們與當前表一起傳遞給 run 函數處理。表數據是當前表中的一個 pandas.DataFrame 對象,存儲在 tps 中。還可以從 tps 檢索其他信息,例如 tps.rowmsk、tps.colmsk,以獲得當前選定表的行和列掩碼。

    其他類型的插件

    上述的濾波器和表是兩個最重要的插件,但是 ImagePy 也支持一些其他類型的插件擴展。目前它支持的插件有九個,它們是:

    1. 濾波器:主要用于圖像處理;

    2. simple:類似于濾波器,但關注圖像的整體特性,如 ROI 的操作、假彩色的操作、面積的測量、或整個圖像的三維分析、可視化等;

    3. free:獨立于圖像的操作。用于打開圖像、關閉軟件等;

    4. tool:使用鼠標在圖表上進行交互,并在工具欄上顯示小圖標,如畫筆;

    5. table:對表進行操作,如統計分析、排序、繪圖等;

    6. widget:顯示在面板中的小部件,如右側的導航欄、宏記錄器等;

    7. markdown:標記語言,單擊時,將彈出一個單獨的窗口來顯示文檔;

    8. macros:用于串行固定操作過程的命令序列文件;

    9. workflow:結合宏和 markdown 創建交互式指導過程。

    動機與目標

    python 是一種簡單、優雅、強大的語言,并且具有非常豐富的科學計算相關的第三方庫。一方面,基于通用矩陣結構和相應的規則,基于 numpy 的 scipy、scikit-image、scikit-learning 等科學計算庫給科學研究帶來了極大的便利。另一方面,通過科學計算、圖像處理,可以高效準確地解決生物學、材料科學等科學研究中越來越多的問題。

    然而,仍然有許多研究人員缺乏編程技巧。因此,讓更多的研究人員能夠使用基于 numpy 的科學計算庫是至關重要的。ImagePy 使不是程序員研究人員也能使用計算機進行科學計算,因此他們不需要關注 UI 和交互設計,只需要關注算法本身,最終加速開源工具構建甚至商業產品的孵化。同時,這些工具可以讓更多不善于編程的人獲取、推廣和普及圖像處理、統計學等科學知識。

    來源:https://github.com/Image-Py/imagepy

    雷鋒網

    雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知

    ImagePy——UI界面支持開放插件的Python開源圖像處理框架

    分享:
    相關文章
    當月熱門文章
    最新文章
    請填寫申請人資料
    姓名
    電話
    郵箱
    微信號
    作品鏈接
    個人簡介
    為了您的賬戶安全,請驗證郵箱
    您的郵箱還未驗證,完成可獲20積分喲!
    請驗證您的郵箱
    立即驗證
    完善賬號信息
    您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
    立即設置 以后再說