Closed itutu-tienday closed 1 year ago
こちらのtransformのパラメータがResizeのパラメータに当たる様です transform[0][0] transform[1][1] transform[2][2] https://github.com/aces/brainbrowser/blob/fe0ce114c6cd8e317a6bdd9b7ef97cbf1c38309d/src/brainbrowser/volume-viewer/volume-loaders/nifti1.js#L297
現在の仕様だとResizeの値によっては最大Zoomでも画面からはみ出してしまうので別途対応が必要
こちらの関数でOriginと回転の設定をおこなっているようです この関数を元にUIで新たな値を設定した際に新たな関数を呼び出すのが良さそうです。 変換はアフィン行列で行われています。 https://github.com/aces/brainbrowser/blob/fe0ce114c6cd8e317a6bdd9b7ef97cbf1c38309d/src/brainbrowser/volume-viewer/volume-loaders/minc.js#L201
Tích hợp tính năng xoay nghiêng mặt cắt ảnh・Tính năng Resize trên MRI Image Viewer Thời điểm hiện tại, sẽ tiến thành các nội dung dưới đây:
Hướng xử lý:
Nội dung xử lý
Schedule
@sanglevinh
KH điều tra thì có vẻ như paramater transform dưới đây chính tương ứng với parameter Resize transform[0][0] transform[1][1] transform[2][2] https://github.com/aces/brainbrowser/blob/fe0ce114c6cd8e317a6bdd9b7ef97cbf1c38309d/src/brainbrowser/volume-viewer/volume-loaders/nifti1.js#L297
Theo spec hiện tại, tuỳ thuộc vào giá trị của Resize thì ngay cả khi Zoom tối đa lại đang bị nhô ra khỏi màn hình, nên sẽ cần xử lý để customize lại sau
Phần code dưới đây thể hiện số lượng chiều của các trục https://github.com/aces/brainbrowser/blob/fe0ce114c6cd8e317a6bdd9b7ef97cbf1c38309d/src/brainbrowser/volume-viewer/volume-loaders/nifti1.js#L299-L301
Có vẻ như bằng hàm số dưới đây, thì sẽ có thể setting xoay nghiêng so với Origin Nên họ nghĩ dựa vào hàm số, có vẻ tốt để call hàm số mới khi đã setting giá trị mới vào trong UI --> Việc convert được thực hiện bằng ma trận Affine https://github.com/aces/brainbrowser/blob/fe0ce114c6cd8e317a6bdd9b7ef97cbf1c38309d/src/brainbrowser/volume-viewer/volume-loaders/minc.js#L201
@emuemuJP @itutu-tienday 画像断面回転機能について、
volume-loaders/nifti1.jsファイルのniftiQuaternToMat44
関数で回転を設定できるようです。
また、確認するには、parseNifti1Header
関数を下記の画像のように修正する必要があります。
行列のパラメータを取得するには、計算が不要で、THREEを利用することができます。
const m = new THREE.Matrix4();
m.set(0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 );
m.makeRotationX(0.5);
//m.makeRotationZ(0.5);
//m.makeRotationY(0.5);
console.log(“matrix”, m)
以下、確認コメント
引き続き、検証をお願いします。
@emuemuJP @itutu-tienday
@emuemuJP @itutu-tienday 細かな角度での回転機能について、現時点までの調査と対応を下記のデモ動画にてご確認お願い出来ますでしょうか。 この動作で問題や調整点があれば、ご指示お願い致します。 https://drive.google.com/file/d/1J6CxfoCu3nPvFaguXzHAgM5fEU-EvgYS/view?usp=sharing
NiFTIファイルで断面回転ができるかの調査について、下記にて報告させて頂きます。
ご確認お願い致します。
調査と報告について、ありがとうございます。 なおDICOMとNiFTIでフォーマットが異なることから、回転操作へのアプローチが異なるらしい点は、認識しました。
なお以下は情報共有ですが、NiFTI形式でも、おそらく断面(軸)の回転に対応しているアプリケーションを、幾つか確認しています。
アプリケーション例
(参考)NiFTIフォーマット情報
上記の各アプリケーションの実装方法は不明ですが、内部で 断面/軸/orientation を傾ける操作が行われているようです。
KH cảm ơn bên mình đã điều tra và report cho họ biết. Ngoài ra, họ cũng đã biết do format trong DICOM và file NiFTI khác nhau, nên việc tiếp cận để thao tác xoay nghiêng cũng khác nhau rồi.
Ngoài ra, họ có chia sẻ 1 số thông tin họ tìm hiểu được. Có một vài app ngay cả với format NiFTI thì cũng hỗ trợ xoay nghiêng mặt cắt (trục) được.
Họ cũng không rõ về cách thực hiện trong các app trên, nhưng có vẻ như có thể tiến hành thao tác nghiêng mặt cắt/ trục/ orientation trong app đó.
当件(画像断面回転)はアプリケーション初期リリース時点では、機能未搭載でのリリースとなる見込み。 ステータスをペンディングとする。
MRI Image Viewer で画像断面回転機能を有効とする件について、 現在時点、以下の内容ですすめる方針とする。
対応方針
Bran Browser に、画像断面回転機能を組み込む(カスタマイズする)。
補足
OHIF Viewerは、画像断面回転機能 等、必要な機能を有しているが、実際に組み込むにあたっては課題も多いため、対象外を想定。
15
ここまでの情報調査で、Bran Browser が 比較的 機能を有しており、カスタマイズ が対応可能そうであることから、Bran Browserを対象とする。
対応内容
スケジュール
56