いくつかのピクセル処理を行うためにDICOMファイルを解析する必要があります。私はDCMTKライブラリを試みましたが、それは私のために働いていません。 DICOMファイルを読みたいので、C++の軽量クロスプラットフォームライブラリのように、非常にシンプルなものがほしいです。cicでdicomピクセルを読み取る方法
ご意見をいただければ幸いです。
いくつかのピクセル処理を行うためにDICOMファイルを解析する必要があります。私はDCMTKライブラリを試みましたが、それは私のために働いていません。 DICOMファイルを読みたいので、C++の軽量クロスプラットフォームライブラリのように、非常にシンプルなものがほしいです。cicでdicomピクセルを読み取る方法
ご意見をいただければ幸いです。
ImageMagickを使用してDICOMファイルを読み取ることができます.DICOMファイルはフリーでクロスプラットフォームで、一般にLinuxディストリビューションにインストールされ、OSXおよびWindowsで使用できます。あなたはバージョン7.xを使用したい場合はバージョン6.xのサンプルは以下の
...
////////////////////////////////////////////////////////////////////////////////
// sample.cpp
// Mark Setchell
//
// ImageMagick Magick++ sample code
//
// Compile with:
// g++ sample.cpp -o sample $(Magick++-config --cppflags --cxxflags --ldflags --libs)
////////////////////////////////////////////////////////////////////////////////
#include <Magick++.h>
#include <iostream>
using namespace std;
using namespace Magick;
int main(int argc,char **argv)
{
// Initialise ImageMagick library
InitializeMagick(*argv);
// Create Image object and read in DICOM image
Image image("sample.dcm");
// Get dimensions
int w = image.columns();
int h = image.rows();
cout << "Dimensions: " << w << "x" << h << endl;
PixelPacket *pixels = image.getPixels(0, 0, w, h);
for(int y=0; y<h; y++){
for(int x=0; x<w; x++){
Color color = pixels[w * y + x];
cout << x << "," << y << ":" << color.redQuantum() << "/" << color.greenQuantum() << "/" << color.blueQuantum() << endl;
}
}
}
サンプル出力は
Dimensions: 512x512
0,0:0/0/0
1,0:0/0/0
2,0:0/0/0
3,0:0/0/0
4,0:0/0/0
5,0:0/0/0
6,0:0/0/0
7,0:0/0/0
8,0:0/0/0
9,0:0/0/0
10,0:0/0/0
11,0:0/0/0
12,0:0/0/0
13,0:0/0/0
14,0:0/0/0
15,0:0/0/0
16,0:0/0/0
17,0:0/0/0
18,0:0/0/0
19,0:0/0/0
20,0:0/0/0
21,0:0/0/0
22,0:0/0/0
23,0:0/0/0
24,0:0/0/0
25,0:0/0/0
...
...
260,18:80/80/80
261,18:144/144/144
262,18:192/192/192
263,18:80/80/80
264,18:32/32/32
265,18:144/144/144
...
...
、エリックの技術hereを参照してください。
または、ターミナルでコマンドラインで、次のような生の8ビットのRGBのバイナリデータにファイルを変換することができます
# Convert 512x512 image to 8-bit RGB binary file
convert sample.dcm -depth 8 rgb:image.bin
ls -l image.bin
-rw-r--r-- 1 mark staff 786432 30 Jun 15:29 image.bin
あなたがうまくいけば、画像が今786432であることをファイルサイズから見ることができますあなたが取得します知って512×512ピクセルのそれぞれについて、3バイトですので、あなたが直接あなたのCにデータを読み取ることができ++プログラムのバイト、:
RGB RGB RGB RGB ... RGB
または、ターミナルでコマンドラインで、あなたがイメージをダンプすることができますデータは16進数として:
convert sample.dcm -depth 8 txt: | more
サンプル出力
# ImageMagick pixel enumeration: 512,512,65535,gray
0,0: (0,0,0) #000000 gray(0)
1,0: (0,0,0) #000000 gray(0)
2,0: (0,0,0) #000000 gray(0)
あなたは「それは働いていない」よりも具体的なことができれば、いくつかの助けを得ることができるかもしれません。 (私の限られたDICOM知識に基づいて、「軽量」はあなたが見つけられないものです.DIMTTKだけでも標準の「大きな部分」を実装すると主張しています)。 – molbdnilo
私が働かないということは、それを使用するには、私はubuntuにdcmtk.3.6.0をインストールしましたが、どこで起動するのかわかりませんでした。どうすればdcmファイルを読むことができますか? –
DCMTKのドキュメント(http:// supportなど)はどうですか? dcmtk.org/docs-snapshot/mod_dcmdata.html#Examples)および/または多数のサンプルツール(ソースコードパッケージの "apps"サブディレクトリ)に追加することができます。 –