• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
Office 指南

Office 指南

辦公室工作實用教學

  • Excel
  • Word
  • PowerPoint
  • Windows
  • PowerShell
  • R

Python 使用 ITK SimpleFilterWatcher 監看 Filter 執行狀態教學與範例

介紹如何在 Python 中使用 ITK 的 SimpleFilterWatcher 輸出指定 filter 產生的管線事件(pieline events)詳細資訊。


在開發 ITK 應用程式時,如果需要觀察管線內部各個 filter 的運作狀況,可以在程式中加入 SimpleFilterWatcher,把指定 filter 的所產生的所有管線事件輸出至標準輸出(standard output)。

import itk

# 影像維度
Dimension = 3

# 輸入影像類型
InputPixelType = itk.US
InputImageType = itk.Image[InputPixelType, Dimension]

# 讀取 MHA 影像檔案
inputImageFilename = "input.mha"

# 建立影像 Reader
reader = itk.ImageFileReader[InputImageType].New(FileName=inputImageFilename)

# 建立 ThresholdImageFilter
thresholdFilter = itk.ThresholdImageFilter[InputImageType].New()
thresholdFilter.SetInput(reader.GetOutput())
thresholdFilter.ThresholdBelow(100)
thresholdFilter.SetOutsideValue(0)

# 輸出 Filter 管線事件資訊
watcher = itk.SimpleFilterWatcher(thresholdFilter, "Threshold")

# 實際執行
thresholdFilter.Update()
-------- Start ThresholdImageFilter "Threshold" ThresholdImageFilter (0x358caa0)
  RTTI typeinfo:   itk::ThresholdImageFilter<itk::Image<unsigned short, 3u> >
  Reference Count: 3
  Modified Time: 16
  Debug: Off
  Object Name:
  Observers:
    StartEvent(SimpleMemberCommand)
    EndEvent(SimpleMemberCommand)
    ProgressEvent(SimpleMemberCommand)
    IterationEvent(SimpleMemberCommand)
    AbortEvent(SimpleMemberCommand)
  Inputs:
    Primary: (0x35ffa10) *
  Indexed Inputs:
    0: Primary (0x35ffa10)
  Required Input Names: Primary
  NumberOfRequiredInputs: 1
  Outputs:
    Primary: (0x41b7e60)
  Indexed Outputs:
    0: Primary (0x41b7e60)
  NumberOfRequiredOutputs: 1
  Number Of Work Units: 128
  ReleaseDataFlag: Off
  ReleaseDataBeforeUpdateFlag: Off
  AbortGenerateData: Off
  Progress: 0
  Multithreader:
    RTTI typeinfo:   itk::PoolMultiThreader
    Reference Count: 1
    Modified Time: 2
    Debug: Off
    Object Name:
    Observers:
      none
    Number of Work Units: 128
    Number of Threads: 48
    Global Maximum Number Of Threads: 128
    Global Default Number Of Threads: 48
    Global Default Threader Type: itk::MultiThreaderBaseEnums::Threader::Pool
    SingleMethod: 0
    SingleData: 0
  DynamicMultiThreading: On
  CoordinateTolerance: 1e-06
  DirectionTolerance: 1e-06
  InPlace: Off
  The input and output to this filter are the same type. The filter can be run in place.
  OutsideValue: 0
  Lower: 100
  Upper: 65535
Progress  | 0.00943396
Filter took 0.0180871 seconds.
-------- End ThresholdImageFilter "Threshold"
ThresholdImageFilter (0x358caa0)
  RTTI typeinfo:   itk::ThresholdImageFilter<itk::Image<unsigned short, 3u> >
  Reference Count: 3
  Modified Time: 16
  Debug: Off
  Object Name:
  Observers:
    StartEvent(SimpleMemberCommand)
    EndEvent(SimpleMemberCommand)
    ProgressEvent(SimpleMemberCommand)
    IterationEvent(SimpleMemberCommand)
    AbortEvent(SimpleMemberCommand)
  Inputs:
    Primary: (0x35ffa10) *
  Indexed Inputs:
    0: Primary (0x35ffa10)
  Required Input Names: Primary
  NumberOfRequiredInputs: 1
  Outputs:
    Primary: (0x41b7e60)
  Indexed Outputs:
    0: Primary (0x41b7e60)
  NumberOfRequiredOutputs: 1
  Number Of Work Units: 128
  ReleaseDataFlag: Off
  ReleaseDataBeforeUpdateFlag: Off
  AbortGenerateData: Off
  Progress: 1
  Multithreader:
    RTTI typeinfo:   itk::PoolMultiThreader
    Reference Count: 1
    Modified Time: 2
    Debug: Off
    Object Name:
    Observers:
      none
    Number of Work Units: 128
    Number of Threads: 48
    Global Maximum Number Of Threads: 128
    Global Default Number Of Threads: 48
    Global Default Threader Type: itk::MultiThreaderBaseEnums::Threader::Pool
    SingleMethod: 0
    SingleData: 0
  DynamicMultiThreading: On
  CoordinateTolerance: 1e-06
  DirectionTolerance: 1e-06
  InPlace: Off
  The input and output to this filter are the same type. The filter can be run in place.
  OutsideValue: 0
  Lower: 100
  Upper: 65535

參考資料:ITKExamples

分類:Python 標籤:ITK

讀者互動方式

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

主要資訊欄

搜尋

近期文章

  • C++ 語言使用 Crypto++ 實作 RSA 數位簽章教學與範例
  • C++ 語言使用 Crypto++ 實作 RSA-OAEP 搭配 SHA256 加密教學與範例
  • C++ 語言使用 Crypto++ 實作 AES 加密、解密、認證加密教學與範例
  • C++ 語言使用 Crypto++ 實作 MD5、SHA1、SHA2、BLAKE2 雜湊教學與範例
  • Ubuntu Linux 安裝、使用 Crypto++ 加密函式庫教學與範例
  • C 語言使用 OpenSSL 實作橢圓曲線 ECDH 金鑰交換教學與範例
  • Python 以 eciespy 實作 ECC 非對稱式加密方法教學與範例
  • C 語言使用 OpenSSL 實作 PBKDF2 教學與範例

推薦網站

  • Udemy 線上教學課程
  • Coursera 線上教學課程

關注本站

  • 電子郵件
  • Facebook

公益

  • 家扶基金會
  • 台灣世界展望會
  • Yahoo 奇摩公益
  • igiving 公益網
  • 兒福聯盟

Copyright © 2021 · Office Guide