最近の超音波診断装置には動画撮影機能が備わっている(図はARIETTA65)。
今回のターゲット臓器は胆のうである。
まず、なるべくプローブを皮膚に対し垂直を保ったまま頭足方向に数cm動かす。そこで、今回、6秒間のmp4画像が得られた。
これを、65枚、あるいは200枚、あるいは任意の数の.jpgファイルに分割するアプリ: mp4_to_jpg_with_time.py (それぞれに、動画内の時間表示)
これを直接3D表示するとどうなるか?
main_pyvista_3d.py
このことから、
「jpgをThreshold後、白黒2極のpngに変換」する必要があるとわかった。
その出発点として、各箇所のピクセル値をマウスのクリックで取得する:pixel_point.py
そこでわかったpixel値は 例 胆のう内12 PV34 肝70 胆のう壁177
(黒:0 白:255)
それを、閾値をもうけ、たとえば30以下を黒、それ以上を白として表示するようにしたアプリ(実際はの表示は、白黒反転。そして、白は表示され、黒はみえなくなる)
threshold_mask_generator.py: jpg→jpg, png→png
generate_threshold_masks.py: すべての種類→png
たとえば30以下を黒(表示は白)、それ以上を白(表示は黒)として。
このようにgenerate_threshold_masks.pyで処理後、
再びmain_pyvista_3d.py使用すると。
多くの雑音があるが、右上の塊が胆のうとみてとれる。
次に、この3D画像をさらにきれいにするために、様々なことをおこなった。
① 3D画像の表示法の工夫
3D_isovalue.py (出発点:main_pyvista_3d.py と同じ)
3D_addvolume.py
3D_smooth.py
3D_smooth_color.py
最後のアプリで、上記の色:ivory→beigeしたものが下記。
② Jpg→pngにする際のthreshold を5〜20を白という狭い範囲にする:
generate_threshold_masks_maxmini.py
その後、画像を3D表示すると下記。
これによりノイズ(無関係な構造や背景の白)が明らかに減っている。
だがその一方で、胆のう自体も一部が削られているように見える(閾値調整による構造のトレードオフ)。
③ 画像の一部のみを選択して、同様のことをおこなう
cropped_resized_jpg_generator.py:「トリミング → リサイズ → 保存」
=マウスクリックによるポリゴンで選択を1枚の画像におこない、その位置でのこのような部分選択(内部のみ)を200枚におこなった
そして、そのcropped_resized_jpg_generator.pyにて部分選択後の200枚の画像を、今までと同様の方法でmain_pyvista_3d.pyで3D表示した
だが、むしろ胆のうの形は失われてしまった。
(結論) 残念ながら、結局、今回は、最初の3D画像から進歩できなかった。
(課題)
①もう少し、胆のう辺縁がスムーズにならないか?⇒今のままでは、2Dで映ったポリープがきれいにとらえられない
=今のところ、現状では、3Dで「見やすく患者に提示できる」ようにはなる可能性はあるが、新たな診断知見を得ることはむずかしいそう。
②周りの枠はとれないか?
③エコーを縦に動かすと垂直面からのぶれが生ずる。その補正に、プローブに、位置・角度センサーを付けて補正(研究では、新たなプローブなど高額で試作できないので、M5StickPlusなどを手持ちのプローブに固定する?)
④ 縦に動かすと、肋骨にあたってすすめない。最初から、ターゲット臓器の制限はある。だが、プローブを体表に垂直にして移動させるかわりに、プローブを体の1点にあて、前後に倒す(時間軸にそって画像をならべていくと直方体ではなく、扇?のようになる)、というやり方であれば、それに沿った3D作成はできるであろう。