CT画像の空間分解能測定の手法として、最近はタスクベースのMTF(TTF)を測定することが主流になっており、そのために低コントラストのエッジの応答を調べる必要があります。
その際にノイズの影響を小さくするために、複数枚の画像を加算平均する作業が必要になるのですが、ImageJでは加算平均はできてもDICOM画像に保存し直すことが(たぶん)できない。CTなんとか学会の提供するソフトでは、特定非営利活動法人のくせに会員限定版でしか加算平均のDICOM保存の機能が使えない、という、学術活動をさせたいのかさせたくないのかよくわからんことになってます。
CT装置の処理系やワークステーションでも、意外とこれ加算平均できるものって(たぶん)少ないのです。単純加算やサブトラクションはできるけど、というものや、スライス位置が違うと四則演算はさせませんよ、みたいなものだったり。
というわけで、pythonで自分で作ってみることにしました。
CTを加算平均したい のコピー(全年齢公開版)|Google Colaboratory
完成したものがここにあります。
※2021/5/24
コードに修正を加えました。加算枚数が多い場合に、平均化の式(合計÷枚数)の「合計」がint16の格納可能bit数を超え画素値が飽和するので、計算過程はfloatで行い、最後の保存の際にint16に戻すことにした。
Google Colaboratoryというのは、Anaconda+Jupyter Notebookの環境をweb上で使用することができる、Googleが提供する開発環境です。
(参考)Google Colabの知っておくべき使い方 – Google Colaboratoryのメリット・デメリットや基本操作のまとめ
公開したコードはGoogleの設定上、「リンクを知っている人全員」が「閲覧可」のパラメータになっていますが、たぶんリンクを開くとコードを動かすことができます(コード変更しても上書き保存はできない)。コピーをダウンロードしていろいろいじって編集改良していただいても構いません。
本当はGitHubとかQiitaに挙げても良かったんですが、ニッチな分野なのでブログに留めておきます。
では。