DICOM 学習:ApolloView Lite

2017-09-29 :  PCクリニック
Python、C言語、Perl、グルコサミン、Firefox
改めて「Free DICOM Viewer」で検索してみた。

“NAVER まとめ”の
無料でつかえるWindowsのDICOMビューアー」が見つかる。

 通常のビューアー
 病院などからもらってきたCD-RにはいったX線検査や超音波検査の画像や
 画像検査施設や大学病院でもらってきたCTやMRIの画像を見ることができます。
 個人的には、X線検査や超音波検査のデータはAppllo View liteを使用して、
 CTたMRIにはYAMAKI DICOMツールを使用しています。
 無料である割には性能もちゃんとしています。

 ApolloView Lite
  操作性は一番だと思います。MPR※はできません。
 通常のDRやCR、超音波検査(フォーマットによっては静止画のみ)ならば問題なし。
 ※ MPRとはmulti planar reconstructionのことで、
  CTなどのボリュームデータから3方向での断面を同時に表示する方法のことです。


とあるので、

 ソフト名: ApolloView Lite 4.16.8.2
 ファイル: ApolloViewLite4160802Setup.zip / 1,653,856Bytes / 2016.08.04

をダウンロードした。

書庫の中身は?
実質インストーラ:“ApolloViewLiteSetup.exe” 1.70MB 1つ。

早速実行(インストール):
(例によって) D:/TOOL/ApolloViewLite/ に。

 ApolloViewLite.exe 他 数ファイル&数フォルダ。

 Path 登録は無し。


実行してみた。

ほぼ表示のみ?

「その他」メニューに、
  「タグリスト表示」
  「ヒストグラム表示」
が有。


出力では、

ほぼ「.dcm」フォーマットのみ?


<紙>的には、イラナイ な。


本日はここまで。


DICOM 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


170821

DICOM 学習:GraphicsMagick

2017-09-27 :  PCクリニック
Python、C言語、Perl、グルコサミン、Firefox
前々回(2017-09-22)の記事「DICOM 学習:ImageMagick」に続いて、・・・・・

昨年4月(2016-04-06)の記事「GraphicsMagick って?」では、

  GraphicsMagick は、2002年11月に ImageMagick 5.5.2 から派生した。
  その後は、完全に別なプロジェクトである。
  ImageMagick から派生して以来、多くの機能強化がなされている。(NEWS 参照)
  ただし、API やユーティリティ操作に関する変更は無い。

  最近の<紙>は、“ImageMagick”をあまり使わなくなっている。
  なので、この“GraphicsMagick”はとりあえず保留ダ。

で終わっていたが、

その後、
12月に入って、ImageMagickの“display.exe”が動かなかったので、
思い出して、GraphicsMagickを導入していた。
( Path には、先頭に登録された )
本家サイト:GraphicsMagick Image Processing System


それで、ImageMagickに対抗して、
GraphicsMagickで DICOM はどうなのか?

確認してみた。

インストールしたときに、デスクトップに出来たショートカット:
“GraphicsMagick Display (32-bit)”
に ドラッグ&ドロップで、表示出来た。


それから、・・・・・

対応フォーマット:GraphicsMagick Supported Formats

コマンド仕様:GraphicsMagick GM Utility

を参考に、
形式変換をしてみた。

最初は
gm  convert  x.dcm  gm_convert_x.tif
としたら、
RGB 形式に変換されたので、
gm  convert  x.dcm  -channel Gray  gm_convert_x.tif
とした。
これで、16bit GrayScale で出力された。

XnView では、16bit なので、8bit に変換するゾ とでた。

ですが、
ImageJ で読み込んで表示、ヒストグラムを見ると、
値は
  0~1965 が 0~47597 となっている???

これは、どういうこと?


本日はここまで。


DICOM 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


170820

… XMedCon:The project stands for Medical Image ・・・

2017-09-25 :  PCクリニック
Python、C言語、Perl、グルコサミン、Firefox
前々回(2017-09-20)の記事:
AMIDE:Free tool for viewing,・・・medical imaging data sets
で参照したサイト:
Free DICOM Viewer
  RTstudents.com
   Radiology for Students and Professionals

この中から、
  Medcon and Xmedcon - (DOS, Windows and Unix) Some PR-talk here.
  The project stands for Medical Image Conversion.
  Released under the (L) GPL licence, it comes with the full C-source code
   of the library, a flexible command-line utility and
   a neat graphical front-end using the Gtk+ toolkit.
  The supported formats are: Acr/Nema 2.0, Analyze (SPM), Concorde/uPET,
   DICOM 3.0, CTI ECAT 6/7, InterFile3.3 and PNG or Gif87a/89a.
  ・・・・・
  ・・・・・

はどうか?

行ってみた:

  (X)MedCon
   - description -
  an open source toolkit for medical image conversion



左ペインの、Download
の、

  package

  windows  zip  xmedcon-0.14.1-mswin.zip  README.WIN

から、
「xmedcon-0.14.1-mswin.zip」 2015-12-27 付  10.3MB
をダウンロード。

中身は、実質「setup.exe」 10.4MB 1つ。


早速実行(セットアップ)

  Path は登録されない様ダ。

インストール先は:(固定) C:\Program Files\XMedCon



左ペインの、Documentation
の、

 3. Program - CLI

で学習:
medcon [options] -f  ...

オプションは 出力用?

  -b16, --signed-short
  -big, --big-endian
  -c, --convert ...
     meaning
    acr Acr/Nema 2.0
    anlz Analyze (SPM)
    conc Concorde/microPET
    dicom DICOM 3.0 (NM)
    ecat6 CTI ECAT 6.4
    ecat7 CTI ECAT 7.2
    gif Gif89a
    intf InterFile 3.3
    inw INW (RUG)
    nifti NIfTI Analyze
    png PNG
    bin Raw binary
    ascii Raw ascii
と云うことで、

2パターン:

1:"C:\Program Files\XMedCon\bin\medcon.exe" -b16 -c bin -f x.dcm
  これで、「m000-x.bin」が出来る。

2:"C:\Program Files\XMedCon\bin\medcon.exe" -b16 -c nifti -f x.dcm
  これで、「m000-x.nii」が出来る。


ここで、
「.nii」とは???
  ImageJ で読める:データの値は、0~1965
  ファイル内容は、
  「.bin」の先頭に 0x160(352) バイトの情報が付加されているだけ?


これ XMedCon はなかなか good

 ( .niiについても学習かナ? )


本日はここまで。


DICOM 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


170819

DICOM 学習:ImageMagick

2017-09-22 :  PCクリニック
Python、C言語、Perl、グルコサミン、Firefox
前々回(2017-09-18)の記事「DICOM 学習:.dcm ビューアー」に続いて、・・・・・

導入済みのツール:ImageMagick
ではどうなのか?

参考サイト:Image file formats and compression
で学習して、・・・

バッチ変換ツールconvertを使って変換してみた:
convert  x.dcm  -depth 16  -compress "none"  IM_out16.tif
これで、
x.dcm を入力として、無圧縮の 16bit TIFF IM_out16.tif で出力。

出来ますね。

結果の TIFF ファイルは?
ImageJで読める:
符号無し16bit: 0 ~ 65535!

データの値では、
入力の周辺部分:-2048=30720 が、-1=65535 になる?


だが、
XnViewでは、・・・読み込めたのか? 警告無しで真っ黒!
OpenCVの読み込みコーディングでは、アボート???


本日はここまで。


DICOM 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


170819

AMIDE:Free tool for viewing,・・・medical imaging data sets

2017-09-20 :  PCクリニック
Python、C言語、Perl、グルコサミン、Firefox
「DICOM C library」で検索してみた。

“Stack Overflow”の
Reading a dicom file in C」が見つかった。

これの 回答 0 の最初の here ( 2番目の here は リンク切れ )

Free DICOM Viewer
  RTstudents.com
   Radiology for Students and Professionals
に沢山のツールが載っている。

この中から、最初?のモノ:
 AMIDE - (DOS, Macintosh, Windows and Unix) Free tool for viewing,・・・
はどうか?

  AMIDE: Amide's a Medical Imaging Data Examiner


左の
 Installation
   Windows

の、
 Binaries
   amide-VERSION_NUM_install.exe

の最初?の行のDownload amide-1.0.4-1_win32_install.exe (17.9 MB)

つまり、
   1.0.4 2012-11-20

即ち:
「amide-1.0.4-1_win32_install.exe」 17.0MB
を ダウンロードした。

そして、インストール: D:/TOOL/amide/ に。
60.9MBだった。
Path への登録は無し。


立ち上げて、

[File]→[Import File](どっちでも)→<場所>&<ファイル名.dcm>
で、読み込み&表示


[File]→[Export data Set]→[Raw data]→<場所>&<ファイル名.dat>
で、4byte Float バイナリファイル

[File]→[Save As XIF Directory]→<場所>&<ディレクトリ名>
で、中に 2byte UInt ( little endian )のバイナリファイル


これだけ?
些かショボイ・・・(古いことでもあるし)イラナイか?


本日はここまで。


DICOM 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


170818

DICOM 学習:.dcm ビューアー

2017-09-18 :  PCクリニック
Python、C言語、Perl、グルコサミン、Firefox
.dcm ファイルを読み込めるツールを探してみた。


ImageJ

  DICOM ファイルを開くには、
 「File」→「Open」→ <ファイル選択>
   拡張子(.dcm)は付いていなくても可
  ※ ドラッグ&ドロップでも開ける

 TIFF で書き出せる:
 「File」→「Save As」→「Tiff...」→ <ファイル名入力>
 ※ 16bit の DICOM ファイルなら、16bit TIFF で保存される。
  little エンディアン でも読めて、big エンディアンで出力。
  ( 無圧縮 )
  このTIFFは、OpenCV で読める(変換してくれている?)


XnView

 読み込み、表示出来る。(“16bit を 8bit 化する”警告表示無し )

 TIFF で書き出せるが、8bit 。
  ( 無圧縮 )


OpenCV

  「DICOM and OpenCV
  →
  C++ and dicom? I would recommend DCMTK.
  Efficient, solid, raliable and open source.



本日はここまで。


DICOM 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


170817

DICOM 学習:Pydicom

2017-09-15 :  PCクリニック
Python、C言語、Perl、グルコサミン、Firefox
「DICOM Python」と検索してみたら、・・・

“Qiita”のPythonでDICOM画像をなんとかする
とか
“XTREME ~”の[Pydicom] Pythonで医用画像(DICOM)を簡単に扱う(1)
が見つかる。

なので、“Pydicom”を使ってみようと思った。

Gohlkeさんのページ」にあった。


「pydicom-0.9.9-py2-none-any.whl」 2014-11-23 付  456KB
をダウンロードした。

“.whl”ファイルは単なる ZIP アーカイブですネ。

なので、Explzhで開いて「dicom」フォルダ以下を、
~/WinPython32_2763/python-2.7.6/Lib/site-packages/ に格納した。


これで、
“XTREME ~”のページにある如く。

  うまくインストールできたか、pythonの対話モードで試してみます。
   >>> import dicom
  とし、エラーが出なければOKです。

やってみた
DOS 窓で、

 > python

 >>> import dicom

OKですね。


で、ドキュメントは:
pydicom documentation
でしょうか?


1本作ってみた:
##### test_DICOM_read.py
# coding: UTF-8
import dicom

ds=dicom.read_file( 'x.dcm' )
M=ds.pixel_array

for y in range(512):
for x in range(512):
if M[y,x]==1965:
print y,x ##### 484 310
これで、
一応使えた。


これは簡単/シンプルですネ。


本日はここまで。


DICOM 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


170817

DICOM 学習:ファイル読み込み

2017-09-13 :  PCクリニック
Python、C言語、Perl、グルコサミン、Firefox
前(2017-09-11)の記事「DICOM 学習:初め?」で書いた、
c#: how to read parts of a file? (DICOM)」の
回答 11 のコードを真似て
何とか読み込みできるものを作った:
----- DICOM_Read.gsl -----
SF = string.format
int16 = |x| ffi.cast( 'int16_t*', x )
uint16 = |x| ffi.cast( 'uint16_t*', x )
uint32 = |x| ffi.cast( 'uint32_t*', x )

ReadUInt16 = || uint16( IN:read(2) )[0]
ReadUInt32 = || uint32( IN:read(4) )[0]
ReadChars = |n| IN:read(n)

IN = io.open( 'x.dcm', 'rb' ) ----- サンプルデータ -----

-- 先頭 128 バイトは Preamble ( all ゼロ )
-- 次の4バイトは:'DICM'

zzz = IN:read(128); fid = IN:read(4)
if fid ~= 'DICM' then
print( 'Not a DICM' ); _=io.read(1); os.exit()
end

----------------------- 参考サイトの C# コードから・・・・・
g = ReadUInt16()
while g == 2 do
e = ReadUInt16();
vr = ReadChars(2)
if vr == 'AE' or vr == 'AS' or vr == 'AT' or vr == 'CS' or
vr == 'DA' or vr == 'DS' or vr == 'DT' or vr == 'FL' or
vr == 'FD' or vr == 'IS' or vr == 'LO' or vr == 'PN' or
vr == 'SH' or vr == 'SL' or vr == 'SS' or vr == 'ST' or
vr == 'TM' or vr == 'UI' or vr == 'UL' or vr == 'US'
then
length = ReadUInt16()
else -- Read the reserved byte
_ = ReadUInt16()
length = ReadUInt32()
end
----- print( g, e, vr, length, SF('%X',IN:seek()) ) -- デバッグ用
val = ReadChars(length)
g = ReadUInt16()
end

----------------------- 以下部分を追加

while g==8 or g==16 or g==24 or g==32 or g==40 or g==64 or g==28677 do
e = ReadUInt16();
length = ReadUInt32()
----- print( g, e, vr, length, SF('%X',IN:seek()) ) -- デバッグ用
val = ReadChars(length)

--------------------
if g==40 then
if e== 16 then print( uint16(val)[0], '=xx' ) end -- 512
if e== 17 then print( uint16(val)[0], '=yy' ) end -- 512
if e==256 then print( uint16(val)[0], '=bpp' ) end -- 16
if e==257 then print( uint16(val)[0], '=msb' ) end -- 16
if e==258 then print( uint16(val)[0], '=hib' ) end -- 15
end
--------------------

g = ReadUInt16()
end


val = ReadChars(6) ----- この6バイト分は不明?

----------
print( SF('%X',IN:seek()) ) ----- 0x09A2 = 2466

----------
val = IN:read(512*512*2)
D = int16( val )

Mx, Mn = 0, 256*256
for n=0,512*512-1 do v=D[n]
if v>Mx then Mx=v end
if vend

print( Mx, Mn ) ----- 1965, -2048
これで、・・・・・


これで、.dcmファイルを読み込める???
そこそこ汎用で???


補足:
  値データは、符号付き16ビット?
  「DICOM ファイルからのイメージ データの読み取り

  .dcm ファイルのデフォルトは、リトルエンディアン?
  「DICOMファイルフォーマットの概要
  タグからは、エンディアンの判定は不能?



本日はここまで。


DICOM 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


170817

DICOM 学習:初め?

2017-09-11 :  PCクリニック
Python、C言語、Perl、グルコサミン、Firefox
ひょんなことから、拡張子が '.dcm' なるファイルを扱うことになった。

これって、
.DCM ファイル拡張子

  読めない、または表示できない dcm ファイルはありませんか?
  dcm の開き方については下記の手順を参照してください。
  dcm ファイルの表示できる・または開けるソフトが利用可能な場合、
  対応ソフトのセクションで検索ができます。
  その後 DICOM Image File を開くフリープログラムの・・・

  .DCMはDICOMの略で、
  正式にはDigital Imaging and Communications in Medicineという。
  この画像ファイル形式はNEMAに開発された。
  NEMAはNational Electrical Manufacturers Associationのこと。

ですね。


詳しいことは別にして、
<紙>流でぶつかってみた。


取り敢えず、1枚(1ファイル):512x512画像。

先ずは、バイナリエディタで開いてみた。

先頭 0x09A2 = 2466 バイトの(ヘッダ?)情報があって、
512x512x2 バイトでデータがある。

“リトルエンディアン”としてみる。

符号付きと見ると、
0xF800 = -2048 から、0x07AD = 1965
の間の値の様ダ。


でも、
多分先頭の情報部分のサイズはモノによる?
また、
“ビッグエンディアン”のモノもある?


何か汎用のものは無いか?探してみた。

C# だけど、
c#: how to read parts of a file? (DICOM)
が見つかった。

回答 11 に、
  Something like this should read the file,
  its basic and doesn't handle all cases,
  but it would be a starting point:
=== Google 翻訳:
  このようなものは、基本的なファイルを読み、
  すべてのケースを処理するわけではありませんが、
  出発点になります。


これで、
<紙>流コーディングか?


さらに、フォーマット説明では:
DICOM Specification Overview: Table of Contents
でしょうか?


頑張って学習ダ。


本日はここまで。


DICOM 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


170815

OpenCV 学習:cvSolve

2017-09-08 :  PCクリニック
Python、C言語、Perl、グルコサミン、Firefox
Tech Noteサイトの
OpenCV - 数学演算」を見つけた。

  ここでは,画像処理に必
  内容を載せていきます.

  ・ 行列演算 (Matrix op
    ・ &color(blue){Cv
    ・ 行列の生成
    ・ 行列演算
  ・ 幾何学変換 (Geometr
    ・ 拡大・縮小
    ・ 回転
    ・ 平行移動
    ・ アフィン変換 (A
  ・ 統計 (Statistics)
    ・ 最小・最大値
    ・ 平均・標準偏差

と云うことで、若干学習した。


昨年2月(2016-02-02)の記事「GSL Shell 学習:matrix.solve( A, b )
で書いた、3変数の連立方程式を解いてみた。

----- test_cvSolve.gsl -----
require'cv2_a'

----------- 係数行列 と、右辺ベクトル データ:
A = matrix.def{ { 0, 3, 6 }, { 1, 4, 7 }, { 2, 5, 9 } }
b = matrix.vec{ 1, 0, -2 }

---------- OpenCV の CvMat 型
M = cv2.cvCreateMatHeader( 3, 3, CV_64FC1 )
cv2.cvSetData( M, A.data, 3*8 ) -- 第3引数: step -

B = cv2.cvCreateMatHeader( 3, 1, CV_64FC1 )
cv2.cvSetData( B, b.data, 1*8 ) -- 第3引数: Full row length in bytes

X = cv2.cvCreateMat( 3, 1, CV_64FC1 ) -- 答え(解)ベクトル

-------------------------------------------------------------
Ret = cv2.cvSolve( M, B, X, 0 ) -- 第3引数: method

for r=0,2 do print( X.Dbl[r] ) end -- 確認
これで?

以前のブログと同じ値が得られた。


なお、solution (matrix inversion) method
については、
・ DECOMP_LU     0
・ DECOMP_SVD     1
・ DECOMP_EIG     2
・ DECOMP_CHOLESKY 3
・ DECOMP_QR     4
・ DECOMP_NORMAL  16
ですね。


本日はここまで。


Lua ( GSL Shell ) / OpenCV 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


170813
おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
09 | 2017/10 | 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク