DICOMファイルを操作する関数・クラスを含む名前空間 [詳細]
データ構造 | |
class | dicom_element |
DICOMのタグとその要素を管理するクラス [詳細] | |
class | dicom_tag_container |
DICOMタグのデータを管理するコンテナ [詳細] | |
class | dicom_image_info |
DICOMの画像情報を管理する [詳細] | |
class | dicom_info |
DICOMの全情報を管理する [詳細] | |
class | dicom_tag |
DICOMタグ(DICOMデータの内容を表すもの) [詳細] | |
class | dicom_uid |
DICOMのUIDを扱うクラス [詳細] | |
class | dicom_tag_table |
MISTで扱うことができるDICOMタグの一覧を登録するクラス [詳細] | |
class | dicom_uid_table |
DICOMが扱う UID の一覧を管理するクラス [詳細] |
列挙型 | |
enum | compress_type { RAW, JPEG, JPEGLS, JPEG2000, RLE } |
DICOMデータの圧縮タイプ [詳細] | |
enum | photometric_interpretation_type { , MONOCHROME1, MONOCHROME2, RGB, PALETTE_COLOR, YBR_FULL_422, YBR_FULL } |
DICOMデータの画素の表現タイプ [詳細] | |
enum | dicom_vr { UNKNOWN, AE, AS, AT, CS, DA, DS, DT, FL, FD, IS, LO, LT, OB, OF, OW, PN, SH, SL, SQ, SS, ST, TM, UI, UL, UN, US, UT } |
DICOMのVRタグの種類 [詳細] |
関数 | |
unsigned char * | check_dicom_file (unsigned char *p, unsigned char *e) |
指定したメモリ領域がDICOM画像を現しているかどうかをチェックする | |
bool | is_sequence_separate_tag (const unsigned char *p, const unsigned char *e) |
シーケンスタグかどうかを判定する | |
bool | is_sequence_element_end (const unsigned char *p, const unsigned char *e) |
シーケンス要素終了タグかどうか | |
bool | is_sequence_tag_end (const unsigned char *p, const unsigned char *e) |
シーケンス終了タグかどうか | |
unsigned char * | read_dicom_tag (unsigned char *p, unsigned char *e, dicom_tag &tag, difference_type &numBytes, bool from_little_endian=true) |
DICOMのタグを読み込み,テーブルに登録されているものと照合する | |
bool | process_dicom_tag (const dicom_tag &tag, unsigned char *byte, difference_type num_bytes, bool from_little_endian=true) |
DICOMのタグに対し,各VRごとの処理を行う | |
unsigned char * | process_dicom_tag (dicom_tag_container &dicm, unsigned char *pointer, unsigned char *end_pointer, bool from_little_endian=true, bool is_in_sequence_tag=false) |
DICOMのタグを処理する | |
bool | read_dicom_tags (dicom_tag_container &dicm, unsigned char *buff, size_type numBytes, bool is_little_endian=true) |
DICOMファイルを読み込んで,全てのDICOMタグを処理しテーブルに登録する | |
bool | read_dicom_tags (dicom_tag_container &dicm, const std::string &filename) |
DICOMファイルを読み込んで,全てのDICOMタグを処理しテーブルに登録する | |
bool | write_dicom_tag_explicit_vr (unsigned short group, unsigned short element, dicom_vr vr, const unsigned char *data, size_t num_bytes, FILE *fp, bool to_little_endian=true) |
DICOMのタグ集合を Explicit VR 形式でファイルに書き出す | |
bool | write_dicom_tag_implicit_vr (unsigned short group, unsigned short element, dicom_vr vr, const unsigned char *data, size_t num_bytes, FILE *fp, bool to_little_endian=true) |
DICOMのタグ集合を Implicit VR 形式でファイルに書き出す | |
bool | write_dicom_tag_explicit_vr (const dicom_element &e, FILE *fp, bool to_little_endian=true) |
DICOMのタグ集合を Explicit VR 形式でファイルに書き出す | |
bool | write_dicom_tag_implicit_vr (const dicom_element &e, FILE *fp, bool to_little_endian=true) |
DICOMのタグ集合を Implicit VR 形式でファイルに書き出す | |
size_t | get_write_dicom_tag_size (const dicom_element &e, bool implicitVR) |
DICOMのタグを出力する際に各タグが必要とするバイト数を計算する | |
void | compute_group_length (dicom_tag_container &dicm, bool implicitVR) |
DICOMの Group Length を計算し,タグに設定する | |
bool | write_dicom_tags (const dicom_tag_container &dicom, const std::string &filename) |
DICOMのタグ集合をファイルに書き出す | |
dicom_uid_table & | get_dicom_uid_table () |
DICOMのUIDに変換する | |
dicom_uid | get_uid (const std::string &uid) |
DICOMのUIDに変換する | |
bool | is_dicom_class_uid (const std::string &uid) |
DICOMのUIDテーブルに存在するかどうかを調べる | |
dicom_uid | get_uid (const unsigned char *str, difference_type numBytes) |
DICOMのUIDに変換する | |
compress_type | get_compress_type (const std::string &uid) |
UIDを元に圧縮タイプを取得する | |
double | find_tag (const dicom_tag_container &dicm, unsigned short group, unsigned short element, double default_value) |
dicmコンテナ内に (group, element)のデータが存在するか調査してその値を返す(見つからない時は default_value を返す) | |
float | find_tag (const dicom_tag_container &dicm, unsigned short group, unsigned short element, float default_value) |
dicmコンテナ内に (group, element)のデータが存在するか調査してその値を返す(見つからない時は default_value を返す) | |
signed int | find_tag (const dicom_tag_container &dicm, unsigned short group, unsigned short element, signed int default_value) |
dicmコンテナ内に (group, element)のデータが存在するか調査してその値を返す(見つからない時は default_value を返す) | |
unsigned int | find_tag (const dicom_tag_container &dicm, unsigned short group, unsigned short element, unsigned int default_value) |
dicmコンテナ内に (group, element)のデータが存在するか調査してその値を返す(見つからない時は default_value を返す) | |
signed short | find_tag (const dicom_tag_container &dicm, unsigned short group, unsigned short element, signed short default_value) |
dicmコンテナ内に (group, element)のデータが存在するか調査してその値を返す(見つからない時は default_value を返す) | |
unsigned short | find_tag (const dicom_tag_container &dicm, unsigned short group, unsigned short element, unsigned short default_value) |
dicmコンテナ内に (group, element)のデータが存在するか調査してその値を返す(見つからない時は default_value を返す) | |
std::string | find_tag (const dicom_tag_container &dicm, unsigned short group, unsigned short element, const std::string &default_value) |
dicmコンテナ内に (group, element)のデータが存在するか調査してその値を返す(見つからない時は default_value を返す) | |
std::string | find_tag (const dicom_tag_container &dicm, unsigned short group, unsigned short element, const char *default_value) |
dicmコンテナ内に (group, element)のデータが存在するか調査してその値を返す(見つからない時は default_value を返す) | |
bool | get_dicom_info (const dicom_tag_container &dicm, dicom_info &info) |
DICOMコンテナからDICOMの情報を取得する | |
bool | is_element_begin (const unsigned char *p, const unsigned char *e) |
要素タグの開始位置かどうか | |
bool | is_element_end (const unsigned char *p, const unsigned char *e) |
要素タグの終了位置かどうか | |
unsigned char * | decode_RLE (unsigned char *psrc, unsigned char *psrc_end, unsigned char *pdst, unsigned char *pdst_end, bool from_little_endian=true) |
RLE圧縮ファイルのデコーダ | |
unsigned char * | decode_JPEG (unsigned char *psrc, unsigned char *psrc_end, unsigned char *pdst, unsigned char *pdst_end) |
JPEG圧縮ファイルのデコーダ | |
bool | decode (dicom_element &element, const dicom_info &info) |
圧縮ファイルのデコーダ | |
unsigned int | construct_dicom_tag (unsigned short group, unsigned short element) |
(group, element) のDICOMタグ識別子を作成する | |
unsigned short | get_dicom_group (unsigned int group_element) |
(group, element) のDICOMタグ識別子を作成する | |
unsigned short | get_dicom_element (unsigned int group_element) |
(group, element) のDICOMタグ識別子を作成する | |
dicom_vr | get_dicom_vr (const std::string &vr) |
文字列からVRタグを作成する | |
std::string | get_dicom_vr (const dicom_vr &vr) |
VRタグを文字列に直す |
DICOMファイルを操作する関数・クラスを含む名前空間
DICOMのVRタグの種類
|
inline |
指定したメモリ領域がDICOM画像を現しているかどうかをチェックする
[in] | p | … 先頭メモリ位置 |
[in] | e | … 末尾メモリ位置 |
参照元 read_dicom_tags().
|
inline |
DICOMの Group Length を計算し,タグに設定する
[in,out] | dicm | … DICOMタグ毎にデータを登録するテーブル |
[in] | implicitVR | … Implicit VR 形式かどうか |
参照先 mist::dicom::dicom_element::data, mist::dicom::dicom_tag::enable, mist::byte_array< T >::get_bytes(), mist::dicom::dicom_tag::get_element(), mist::dicom::dicom_tag::get_group(), get_write_dicom_tag_size(), と mist::dicom::dicom_element::num_bytes.
参照元 write_dicom_tags().
|
inline |
圧縮ファイルのデコーダ
詳細な説明や関数の使用例を書く
[in] | element | … デコードするDICOMデータ |
[in] | info | … DICOMの圧縮に関する情報 |
true | … デコードに成功 |
false | … 未対応の圧縮タイプ |
参照先 mist::dicom::dicom_image_info::bits_allocated, mist::dicom::dicom_image_info::cols, mist::dicom::dicom_image_info::compression_type, mist::dicom::dicom_element::copy(), mist::dicom::dicom_element::data, decode_RLE(), is_element_begin(), JPEG, JPEG2000, JPEGLS, mist::dicom::dicom_info::little_endian_encoding, mist::dicom::dicom_element::num_bytes, mist::dicom::dicom_image_info::number_of_frames, RAW, RLE, mist::dicom::dicom_image_info::rows, mist::dicom::dicom_image_info::samples_per_pixel, と mist::to_current_endian().
参照元 mist::read_dicom(), mist::video::decoder::seek(), mist::video::decoder::seek_frame(), と mist::video::decoder::skip().
|
inline |
JPEG圧縮ファイルのデコーダ
[in] | psrc | … 入力データの先頭ポインタ |
[in] | psrc_end | … 入力データの末尾ポインタ |
[in] | pdst | … 出力データの先頭ポインタ |
[in] | pdst_end | … 出力データの末尾ポインタ |
|
inline |
RLE圧縮ファイルのデコーダ
[in] | psrc | … 入力データの先頭ポインタ |
[in] | psrc_end | … 入力データの末尾ポインタ |
[in] | pdst | … 出力データの先頭ポインタ |
[in] | pdst_end | … 出力データの末尾ポインタ |
[in] | from_little_endian | … 入力データがリトルエンディアンかどうか |
参照先 mist::to_current_endian().
参照元 decode().
|
inline |
|
inline |
|
inline |
要素タグの終了位置かどうか
[in] | p | … 先頭ポインタ |
[in] | e | … 末尾ポインタ |
true | … 要素終了タグの場合 |
false | … それ以外 |
|
inline |
シーケンス要素終了タグかどうか
[in] | p | … 先頭ポインタ |
[in] | e | … 末尾ポインタ |
true | … シーケンス要素終了タグの場合 |
false | … それ以外 |
参照元 process_dicom_tag().
|
inline |
シーケンスタグかどうかを判定する
[in] | p | … 先頭ポインタ |
[in] | e | … 末尾ポインタ |
true | … シーケンスタグの場合 |
false | … それ以外 |
参照元 process_dicom_tag(), read_dicom_tag(), write_dicom_tag_explicit_vr(), と write_dicom_tag_implicit_vr().
|
inline |
シーケンス終了タグかどうか
[in] | p | … 先頭ポインタ |
[in] | e | … 末尾ポインタ |
true | … シーケンス終了タグの場合 |
false | … それ以外 |
参照元 process_dicom_tag(), write_dicom_tag_explicit_vr(), と write_dicom_tag_implicit_vr().
|
inline |
DICOMのタグに対し,各VRごとの処理を行う
[in] | tag | … 処理するDICOMタグ |
[in,out] | byte | … 処理されるバイト列 |
[in] | num_bytes | … バイト列の長さ |
[in] | from_little_endian | … 入力データがリトルエンディアンかどうか |
参照先 mist::_is_little_endian_(), AE, AS, AT, CS, DA, DS, DT, FD, FL, IS, LO, LT, OB, OF, OW, PN, SH, SL, SQ, SS, ST, TM, mist::to_current_endian(), UI, UL, UN, US, UT, mist::dicom::dicom_tag::vm, と mist::dicom::dicom_tag::vr.
参照元 process_dicom_tag(), と read_dicom_tags().
|
inline |
DICOMのタグを処理する
シーケンスを表すDICOMタグが見つかった場合は,再帰的に本関数が適用される
[out] | dicm | … DICOMデータの出力先 |
[in] | pointer | … 先頭ポインタ |
[in] | end_pointer | … 末尾先頭ポインタ |
[in] | from_little_endian | … 入力データがリトルエンディアンかどうか |
[in] | is_in_sequence_tag | … VRがSQ内のタグであるかどうか(SQタグは一つにまとめる) |
参照先 mist::dicom::dicom_tag_container::append(), is_sequence_element_end(), is_sequence_separate_tag(), is_sequence_tag_end(), OB, OW, process_dicom_tag(), read_dicom_tag(), SQ, mist::to_current_endian(), UNKNOWN, と mist::dicom::dicom_tag::vr.
|
inline |
DICOMのタグを読み込み,テーブルに登録されているものと照合する
テーブルに登録されていない場合は,読み飛ばす. もし,適切なDICOMファイルでない場合は-2を返し,データの終端もしくはファイルの読み込みに失敗した場合は-1を返す. そして,読み飛ばした場合は0を返し,テーブルに登録されている場合は次に存在するデータのバイト数を返す. データを処理する先頭のポインタ 'p' と,データの最後+1をさすポインタ 'e' を与える
[in] | p | … 先頭メモリ位置 |
[in] | e | … 末尾メモリ位置 |
[out] | tag | … 取得されたDICOMのタグ |
[out] | numBytes | … DICOMタグが使用しているメモリのバイト数 |
[in] | from_little_endian | … 入力データがリトルエンディアンかどうか |
参照先 AE, AS, AT, construct_dicom_tag(), CS, DA, DS, DT, FD, FL, get_dicom_vr(), mist::dicom::dicom_tag_table::get_tag(), IS, is_sequence_separate_tag(), LO, LT, OB, OF, OW, PN, SH, SL, SQ, SS, ST, mist::dicom::dicom_tag::tag, TM, mist::to_current_endian(), UI, UL, UN, UNKNOWN, US, UT, と mist::dicom::dicom_tag::vr.
参照元 process_dicom_tag().
|
inline |
DICOMファイルを読み込んで,全てのDICOMタグを処理しテーブルに登録する
[out] | dicm | … DICOMタグ毎にデータを登録するテーブル |
[in] | buff | … DICOMのデータが入ったバッファの先頭ポインタ |
[in] | numBytes | … バッファ内のデータのバイト数 |
[in] | is_little_endian | … データの中身をリトルエンディアンとして処理するかどうか |
true | … DICOMファイルの処理に成功 |
false | … DICOMファイルではないか,処理できないタグ・データが存在する場合 |
参照先 check_dicom_file(), mist::dicom::dicom_tag_container::contain(), find_tag(), と process_dicom_tag().
参照元 mist::read_dicom(), と read_dicom_tags().
|
inline |
DICOMファイルを読み込んで,全てのDICOMタグを処理しテーブルに登録する
[out] | dicm | … DICOMタグ毎にデータを登録するテーブル |
[in] | filename | … 入力DICOM]ファイル名 |
true | … DICOMファイルの処理に成功 |
false | … DICOMファイルではないか,処理できないタグ・データが存在する場合 |
参照先 read_dicom_tags().
|
inline |
DICOMのタグ集合を Explicit VR 形式でファイルに書き出す
[in] | group | … グループID |
[in] | element | … エレメントID |
[in] | vr | … VRタグ |
[in] | data | … データ |
[in] | num_bytes | … データのバイト数 |
[out] | fp | … 出力ファイルストリーム |
[in] | to_little_endian | … 出力データの形式をリトルエンディアンにするかどうか |
true | … DICOMファイルの処理に成功 |
false | … DICOMファイルではないか,処理できないタグ・データが存在する場合 |
参照先 mist::_is_little_endian_(), AT, FD, FL, mist::from_current_endian(), get_dicom_vr(), is_sequence_separate_tag(), is_sequence_tag_end(), OB, OF, OW, SL, SQ, SS, UL, UN, UNKNOWN, US, と UT.
|
inline |
DICOMのタグ集合を Explicit VR 形式でファイルに書き出す
[in] | e | … ファイルに出力するDICOMタグ |
[out] | fp | … 出力ファイルストリーム |
[in] | to_little_endian | … 出力データの形式をリトルエンディアンにするかどうか |
true | … DICOMファイルの処理に成功 |
false | … DICOMファイルではないか,処理できないタグ・データが存在する場合 |
参照先 mist::dicom::dicom_element::data, mist::dicom::dicom_tag::get_element(), mist::dicom::dicom_tag::get_group(), mist::dicom::dicom_element::num_bytes, mist::dicom::dicom_tag::vr, と write_dicom_tag_explicit_vr().
|
inline |
DICOMのタグ集合を Implicit VR 形式でファイルに書き出す
[in] | group | … グループID |
[in] | element | … エレメントID |
[in] | vr | … VRタグ |
[in] | data | … データ |
[in] | num_bytes | … データのバイト数 |
[out] | fp | … 出力ファイルストリーム |
[in] | to_little_endian | … 出力データの形式をリトルエンディアンにするかどうか |
true | … DICOMファイルの処理に成功 |
false | … DICOMファイルではないか,処理できないタグ・データが存在する場合 |
参照先 mist::from_current_endian(), is_sequence_separate_tag(), is_sequence_tag_end(), OB, SQ, UN, と UT.
|
inline |
DICOMのタグ集合を Implicit VR 形式でファイルに書き出す
[in] | e | … ファイルに出力するDICOMタグ |
[out] | fp | … 出力ファイルストリーム |
[in] | to_little_endian | … 出力データの形式をリトルエンディアンにするかどうか |
true | … DICOMファイルの処理に成功 |
false | … DICOMファイルではないか,処理できないタグ・データが存在する場合 |
参照先 mist::dicom::dicom_element::data, mist::dicom::dicom_tag::get_element(), mist::dicom::dicom_tag::get_group(), mist::dicom::dicom_element::num_bytes, mist::dicom::dicom_tag::vr, と write_dicom_tag_implicit_vr().
|
inline |
DICOMのタグ集合をファイルに書き出す
[out] | dicom | … DICOMタグ毎にデータを登録するテーブル |
[in] | filename | … 出力DICOMファイル名 |
true | … DICOMファイルの処理に成功 |
false | … DICOMファイルではないか,処理できないタグ・データが存在する場合 |
参照先 mist::dicom::dicom_tag_container::append(), compute_group_length(), mist::dicom::dicom_tag_container::contain(), find_tag(), mist::byte_array< T >::get_bytes(), get_compress_type(), mist::byte_array< T >::length(), RAW, mist::dicom::dicom_tag_container::update(), write_dicom_tag_explicit_vr(), と write_dicom_tag_implicit_vr().