Horos 3.0 をソースからコンパイルする - Sierra 以前のOS編 –

そういうわけでHoros をソースからコンパイルしてみることにした。OsiriX があっちの世界にいってしまったので、仕方ない。(なお、Horos というのは医療画像ビューアです。詳しくはこちらをご参照ください)

といっても当方の Mac 環境は MacBook (12インチ)なのでがんがん使うわけにもいかないだろう。コンパイルしてちょっと使ってみる程度を目標にする。

なお、OS は 10.12 、Xcode は 9.2 。

準備(ここが大事)

CMake と pkg-config が必要になってくるので、あらかじめインストールしておく。homebrew がはいっているならば、

brew install pkg-config
brew install cmake

で問題ないと思う。

こっから先は単純作業。

ソースコードの取得

ホロスプロジェクトの github リポジトリからソースコードを取得する。

git clone "https://github.com/horosproject/horos.git" ~/horos3

数分で取得は終了すると思う。




コンパイル

先ほどつくった horos3 内にある horos.xcodeproj をダブルクリック。

自動的に Xcode が立ち上がるはずだ。

メニューバー >> Product >> Schema

で、まずコンパイル対象に Unzip Binaries を選ぶ。これでまず Build 。

これはあっという間に終わる。

次に、お待ちかね、Horos のコンパイル。

先ほどと同様の手順で今度は Horos を選ぶ。

で、 Build 。

この後、Xcode は、黙々とコンパイルしてくれる。ITK (というライブラリ)をコンパイルするのにかなり時間喰っている様子。途中、NSForm は deprecated ですよとかアラートが出るが(たぶん)気にしなくてよい。

MacBook だと 30 分程度でコンパイルは完了する。とりあえず Run させてみましょう。

無事立ち上がる。

試しに適当なダイコムファイルを喰わせてみる。

大丈夫、読み込めました。

以前に作成した3Dモデルは

いけてます。

お疲れさまでした。

なお、現在(2018/05)、github に上がってるバージョンは 3.0.1 です。

日本語化

Ver 3.0.1 から部分的にですが、Horos が日本語化されました。

上記のコンパイルがうまくいけば、特別な操作なしに日本語化された状態で立ち上がると思います。

てか、私が日本語化したところを本家が取り込んだんですけどね。

Horos 本家

Horos 日本語版 HorliX

時間がなかったのでサブメニューが日英混在という…。

ここはこう訳してほしいというのがあれば、コメント欄にでも書き込んでおいてください。手がすいたときに反映させます。

まとめ & 反省点

Horos はソースコードからコンパイルできる。

日本語化もできる。→ もともと日本語化されています。

しかし、Xcode のクセがいまいちつかめていない。

High Sierra でコンパイルするときの問題点

おそらくそのままではエラーが出てビルドできない。

同包されているライブラリのいくつかが32ビットコンパイルだからだ。

まずはXMLパーサーの Apache Xerces (アパッチ・ザーシーズ)から手をつける。

→長くなりそうなので稿を改めます

 

Horos 再び

旧バージョンとしてすっかり放置されていた当ブログであるが、アクセス解析みたらそれなりに来訪者がいるようだ。

なかでも、「ん?」と思ったのが、「horos 日本語化」あたりで訪れてくれる人が多いこと。

ホロス(horos)コミュニティになんかあったのか?とHPのぞきにいったら、けっこう変わってましたね。

なかでも驚いたのは、Horos Academy なるトレーニングコースが設置されたこと。

ホロス、学帽かぶってるよ…。

あと、ユーザー同士の Q&A のコーナーがごっそりなくなっていた。私もけっこう初歩的な質問には答えていたんだけどなあ。慣れない英語で。

全体的に教育・サポートで収益化をはかりたいという方針が前面に出てきたようだ。

how to install みたいな記事も上記アカデミー内にうつされたようで、これだと、初心者にはソースからコンパイルして Mac にインストールすることも難しいだろう。

なんだろう。この軽く裏切られた感…。

ちょっとインストールトライしてみるか。連休だし。

 

(追記1)…おおっぴらに書いていいかどうかわかりませんが、ダウンロードページは、こちらのようですね。

(追記2)…以前のように Xcode で一発!というわけにはいかないようですね。CMake が導入されてました。

(追記3)…参考までに OsiriX に関して調べましたが、愕然。商用版の OsiriX MD とデモ版の OsiriX lite があって、MD の方は $699 。しかも、買い切りではなく、サブスク1年間でこの価格。これはちょっと高くなりすぎのような…。

ただし、OsiriX のオルタナとして期待されていた Horos ですが、2020 頃より全くリポジトリが更新しておらず、実質的に開発中止となっています。

再開されたとしても近い将来 MacOS で OpenGL が使えなくなるため、OpenGL に依存している Horos は動かなくなります。

オープンソースのマネタイズというのは、難しいものがありますね。

(追記4)…Horos を日本語化したものでもこれはかなり注意が必要。

(追記5)なお、Horos プロジェクト自体は 2026 年現在、ほぼアップデートされておらず、開発は実質的に終了しています。

 

DICOM Viewer に segmentation 機能追加検討

CT 値(ハウンスフィールド値)が求まると面白いことができるようになる。

その一つは、画像上である程度まで組織を分離(segmentation という)できるようになることだ。

例えば、前回の画像で

CT 値 組織
-109 ~ -10 皮下組織
-9 ~ 24 表皮組織
25 ~ 229 筋組織
230 ~ 骨組織

と閾値処理すると↓のような感じになる。

大雑把にはいい線はいっているのだが、細かいところではダメダメである。

骨組織は文句なし、筋組織はまずまずといったところだが、致命的にダメなのは神経組織がまったく分離できないこと。

これは神経組織のCT値が 30~40 であり、筋組織と値が被ってしまうことによる。

かなり以前に行きがかり上この課題に取り組んだことがあるが、そのときはアルゴリズムを工夫することで、半自動的にセグメントできるようになった。

最近の研究結果はどんなもんだろうかと先ほどざっと調べたが、あまり決定的な仕事はなされていないようだ。

やはりあったかと思ったのは、deep learning の手法を用いて云々というもの。流行りなので手を出したい気持ちはわかるのだが、今ひとつピンとこない。この課題の延長線上には、当然、「計算機による画像診断」というかなり重要なテーマが控えているのだが、その際には、どうしても「診断根拠」というものが必要になってくる。現時点での deep learning 的手法は、判断の根拠といった部分の機構が上手く説明できていないような気がする。

もちろん、探索的に用いるのなら有効だろうが。(確か Alpha Go も新手の生成のときにしか deep learning を使っていないはずだ)

ともあれ、目的も成果もわかりやすいこの分野、みなさんもトライしてみてはいかがでしょう?

なお、Orthanc のメーリングリストでもこの話題が出たので、興味がある方はご一読を

 

猪股弘明(医師:精神保健指定医)
HorliX, OpenDolphin-2.7m: developer
Horos: contributor

C# で簡易 DICOM Viewer

いさんで DCMTK をコンパイルしたものの、 C# からは、当然、直接は使えない。

何か適当なツールがあるだろうくらいに考えていたのだが、ありそうでいて意外にない。GDCM というライブラリを使う手もあるらしいが、これはこれで一手間かかる。

やや困る。

面倒なのでライブラリなしで直接ダイコムファイルを読み込んで解析。(結局、こうなる‥‥)

それっぽくは書き出せたが、確かジーメンスは CT値に何か下駄をはかせていたはずで、コントラストがおかしい。

(追加)‥「下駄をはかす」というのは Rescale Intercept というらしい。(DICOM上の)データセットが必ずしも CT 値とは限らないため、

CT 値 = (生データの値) * Rescale Slope + Rescale Intercept

で、変換する。Tag は (0x28,0x1052)。この式に基づいて変換すると

と撮像・記録したときのコントラストで画像が再現できる。

よくわからなかったのは、Window Center & Width に値が二つ設定されていた点。40/700 と 200/3200 とであった。まあ、(40, 200) の設定でよいのだろうが、これがジーメンス固有のものであるかはちょっとわからない。

 

猪股弘明(精神科:精神保健指定医)
HorliX, OpenDolphin-2.7m : developer
Horos : contributor

Horos plugin は使えるか?

horos シリーズ。

OsiriX の利点の一つとして「plugin を組み込むことで機能の拡張がはかれる」というのがある。例えば、 jpeg 画像ファイルを読みこみ DICOM ファイルとして保存させておくということができたりする。

なので Horos でもできないか確認。

plugin を Horos 用にコンパイル。ここは問題ないようだ。拡張子を .horosplugin とするのが作法か。

次に、適当な jpeg ファイルをつくり plugin 機能を使って Horos に読み込ませる。

で、タグを編集して、CT っぽくして3次元化。

あとは、普通に 3D レンダリング。ついでに動画書き出し。


 

割と機械的な作業の連続ですが、一応できたということで。

Horos なんちゃって日本語化、あるいは HorliX

下記の元記事は 2017 年に書かれたものですが、Horos の日本語事情を検索すると 2026 年の今でも上位にくるようです。
また、AI によっては「Horos を日本語で使用したいなら HorliX を使え」と勧めるようです。

そういう経緯を踏まえた上で思うところを書きます。

事実だけを述べると、HorliX に関しては arm 対応のバージョンが存在して、既存ユーザーさんや連絡をとってきてくれた人には無償で配布しています。もちろん日本語は使えるし、Horos でよくある UI の崩れもありません。

単純に画像を閲覧する程度であれば、今でも問題なく使えると思います。

けれども、一般公開はしていないし、積極的に普及させるつもりもありません。

その理由として、以前から「OpenGL が非推奨になった以上は、OpenGL に依存する HorliX/Horos をそのままの形でメンテしてもしょうがない」というようなことは言っていたのですが、実は、他にも理由はあります。

教育を考慮した際にはこちらの方がより深刻なような気がしますが、Horos のデータの取り扱いが現在の標準的な DICOM 規格から逸脱している、というのがそれです。
例えば、現在では ROI の情報は DICOM SR に、セグメントなどの加工データは DICOM SEG に保管する、というのが、標準になったように思います。が、Horos では

・DICOM SR はサポートされているが、内部的には独自形式で他のアプリと互換性がない
・DICOM SEG はそもそもサポートすらされていない

とこの現代の潮流から大きく逸脱しています。(詳しくは Slicer のスレ参照)
ならば改修したらいいじゃないかという話になりますが、困ったことに上記の特性は、基本設計に近い部分に存在しているため、改修にはかなりのコストがかかります。
その一方で、プログラミングの手法として AI を使ったコーディングが主流になりつつあります。そして、AI を使ったコーディングは、従来に比べ新規のプロジェクトをおこすのが楽です。

だから、Horos をなんらかの形で延命するのであれば、Horos を改修するのか、新規にプロダクトを起こすのかという選択になりますが、トレンドは完全に後者です。
長らく Horos をサポートしていた iCat という会社は falcon というプロダクトをリリースしていますし、われわれも PHORLIX シリーズを公開しています。
最近では「自作 DICOM Viewer」が流行っています。
もう、プログラミングに通じた少数のものだけで「業界標準」的な一つのソフトをつくる、という時代ではなくなっています。

だから、Horos を「新規」に導入するくらいであれば、用途に応じて、近年設計されたビューアに使った方がいいのではないかと思います。

まとめると・・・

HorliX は最低限のメンテは続けられているし、最新環境(今なら Tahoe)で動くバージョンも存在する。希望者には配布もする。
しかし、積極的な機能追加はされておらず、今後もその方針を変える予定はない。
新規ユーザーはもちろん、既存ユーザーも、可能であれば、近年に設計されたモダンなビューアに移行することを推奨する。

ということになります。


Horos をインストールしたのはいいが、どうせなら日本語化したい。

Mac のことは詳しくないのだが、「OsiriX が日本語化されている以上、Horos でもできるはずだ」という単純な発想。まず、ファインダーで OsiriX.app を表示させ「内容を見る」→Contents→Resources と順に表示。

そしたら、ありました。 Japanese.lproj

あやしい。

おそらく、ここで国際化に対応しているんだろうと推測して、このフォルダを丸ごと Horos.app のContents/Resources フォルダに放り込む。そして、Horos 起動。

おお、日本語化されている。

とても正しい日本語化とは思えないが、今のところ問題なし。どの程度まで本体動作に影響するか不明だが、しばらくこのまま使う予定。(もう少し真面目に日本語化することにしました。下記参照)

それにしても、ここまで言うこと聞いてくれると Mac がだんだんかわいく見えてきた。マカーでもなんでもないが、安いのでいいから、新規に買っちゃおうかな。

 ちゃんとした日本語化

いつまでも「なんちゃって」ではまずいと思い正規の日本語化方法にしたがって若干必要なファイルを追加。ある程度日本語化しました。結果を github の

air-h-128k-il/HorliX

に上げておきました。HorliX と名を改めましたが、トライアル版を不定期に

HorliX Download Page

に上げてますので、必要な方がいたら落としてみてください。

とりあえず、アップデートアラートの類は出なくなりました。

本家にプルリクエスト送っておいたので取り込まれるかもしれません。→あっという間に取り込まれました。

日本語訳の検討はこちらでおこなわれています。

HorliX へ

日本語化以外にも、どこそこの UI を変えてくれ、SSL のサポートもしてほしいなどの要望があり、結局、上のリポジトリは、そのまま HorliX プロジェクトに発展しました。

ここまでやるつもりはなかったんですが、結局、電子カルテと DICOM Viewer/PACS の二つに手を出してしまったっていう…..。

「なんちゃって」日本語化は個人使用の範囲内で自己責任で 

コメント欄で指摘されて気がつきましたが、(オープンソース版ではない)OsiriX の日本語リソースは、開発元独自開発ですのでフリーでもなんでもなさそうです。再配布などはかなりまずいと思われます。(1回、調べたことありますが、各国ローカライズはかなりお金かかってます)
「なんちゃって」日本語化する場合は、個人使用の範囲内で自己責任でお願いします。

ところでコメント欄の


SUGIHARA

現在の OsiriX Lite には「Japanese.lproj」が無く「ja.lproj」のようです
「ja.lproj」をContents/Resources フォルダに放り込むと Horos が起動できなくなります
なにか対策ありますか?
或いは 「Japanese.lproj」をDL可能にしていただけませんか?


って、システムクラフト(サークルテック?)の杉原 利彦さんですかね。

ところで、この杉原さんによれば、私は horos プロジェクトの「自称」contributor なんだそうだが、一応、GitHub のシステムレベルでも記録はされており、世間的にも contributor ということで認知されていると思いますけどね。

北極圏コード貯蔵庫コントリビューター -Arctic Code Vault Contributor-

もの凄く貢献したってわけではないですが、ROI 関係なんて私のコードが基になってますし。

ROI

ところで、ROI-color-rotation-UI に関して、なんで Horos のコードを取り込まなかったのですか?ときかれたことがあったが、「保管方式がすっきりしておらず、後でデータ互換性の問題が起こりそうだったから」というのがその理由です。
当時はそこまで意識したわけではないんですが、「これはやり過ぎだな」と思って取り込みを見送ったわけです。
その後、DICOM SR・DICOM SEG などの標準的な形式が普及するにつれ、当時の判断は妥当だったんだなという思いを強くしています。

air-h-128k-il

(追記)ここ数年、Horos が OS のアップデートにもついていけない現状があるせいでしょうか「新しい環境で動くかどうかもわからないのに、日本語対応だけ、しかも正規なやり方ではない手法(日本語のチェックを外す云々)をことさら取り上げる業者の感覚はおかしいのではないか? 信用ならない」という一般ユーザーの方が増えているようです。
われわれもほぼ同様の意見です。
優先すべきはアプリ自体の安定動作です。
それができた上で、日本語化をはかりたい or 日本語環境をデフォルトでオフにしたいというならば、セルフビルドするかリポジトリコードを直接調整できるメンテナに直接頼む・交渉するというのが OSS に相応しい解決方法でしょう。

 

Horos

DICOM server/viewer として OsiriX が有名だが、ソースからコンパイルしても32bit になってしまうなど制約がある。OsiriX ベースのオープンソフト Horos ではこのような制約はないという。MacBookPro(OS X Sierra) にインストールしてみたので、その覚え書き。

(ビルドには、実行環境の SDK が必要なので、事前に準備しておきましょう。

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs

で確認。なければ、別のバージョンの Xcode から持ってきて、上記フォルダ内にコピーしておく)

まず、github の horos サイトからソースをダウンロード。手に入れた horos-horos.zip を展開(慣れた方は git でどうぞ)。

その中にある Horos.xcodeproj を Xcode に読み込ませる。build setting で Base SDK を macOS 10.12 に指定。

build/Development に Horos.app ができるのでこれを起動。

試しに 3D レンダリングさせてみました。

けっこう安定している。これは使えるかも。

 

air-h-128k-il