PHORLIX

MacOS では、グラフィック API が従来の OpenGL から Metal に移行することが決まっている。

本業ではないが、HorliX という画像ビューアを開発している手前、この移行に対応しておいた方がいいと思い、時間を見つけて Metal を使ったテスト的なプログラムを書くことがある。

最近では、この動画が評判がいいようだ。

Ray Cast という手法で3次元データを可視化したものだ。

Ray Cast 自体は、Ray Tracing (光線追跡)を用いた画像処理のアルゴリズムの中では、最も簡単なもので、実装の手間もそれほどかからなかったのだが、やはり「3次元的に見える」というのは「映え」るようで医療者の心に訴えかけるものがあったようだ。

ところで、従来の HorliX では、この部分の処理をアプリ本体ではなく VTK ( Visualization Tool Kit ) というライブラリにまかせている。

具体的には、データと各種設定などをアプリ側で準備した後、VTK のコールバック関数を利用して一気に描画させる、というやや危険な香り?のする処理方式をとっている。

それゆえ、不具合の温床となりやすく、最近では(HorliX ではないが)Horos のリポジトリにこんなバグ報告が上がっていた。

見事なまでにオフセットがかかっていますね。

幸いにも HorliX ではこれまでこの手の不具合は出ていないのだが(出ないように修正していたわけですが)、出たとしても、現在の状況下で、他の不具合より優先して取り組むかといえば、そんなことはないと思う。

というのは、VTK もまた OpenGL に依存していて、将来的にはこの機能自体が使えなくなるからだ。

有効期限が設定されている問題に真剣に取り組みたいと思う人間は多くない。しかも、アプリとライブラリの設定調整、というモチベーションが保ちにくい課題であれば、なおさらだ。

また、既存コードの修正を図る、というのが、唯一の解決手段というわけではない。

前にも触れたように

・VTK はそのうち使えなくなる
・Ray Cast による実装はそれほど手間がかからない

という事情があるのだから、この部分だけを独自実装してしまってもいいし、むしろ、その方が自然だろう。しかも、こうした方が、ライブラリに任せなくていいので、最低でもその分だけのパフォーマンスの向上が見込める。

Metal – Objcetive-C の練習の手始めとして、Ray Cast アルゴリズムを実装したのには、実は、こういった背景があったからだ。

 

画像処理、特に3次元画像処理の話から入ったが、このようなアプローチは、3次元画像処理に限った話ではない。

3Dの時と同様に Metal を使う必要のある2Dでの画像処理、ダイコムの情報を保管しているデータベースとの連携機能などに関しても、テスト的なプログラムを書いている。

当初の頃は、まったく意識していなかったのだが、これらテストプログラムをまとめれば、それなりのアプリができそうだという予感を関係者が感じ始めたようだ。

果たして完成するのかも未定だが、こちらの方のプロジェクトはいつの頃からか PHORLIX と呼ばれるようになった。

どうぞ、よろしく。

 

追記:なんやかんやでアプリとしての体を成してきたので、

PHORLIX download page

にアプリの zip 圧縮版をあげておきました。

ご興味のある方は、ダウンロード後、解凍してお使いください。

 

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です