「MrcImage.h」の版間の差分
提供: Eospedia
(ページの作成:「'''mrcImage.h'''は、mrcImage型の画像を取り扱うための標準APIです。 == クラス名(構造体) == <pre> mrcImage |- mrcImageHeader (画像の情...」) |
(→メンバ) |
||
行71: | 行71: | ||
char Label[MRC_MAX_LABEL_N][MRC_MAX_LABEL_LEN]; | char Label[MRC_MAX_LABEL_N][MRC_MAX_LABEL_LEN]; | ||
} _mrcImageHeader; | } _mrcImageHeader; | ||
+ | </pre> | ||
+ | |||
+ | CCP4のフォーマットが2000年に正式に変更になったことに併せて、そのフォーマットに対応しました。以前のものと共用体によりいずれのフォーマットにも一端対応しています。 | ||
+ | <pre> | ||
/* For CCP4 2000 : Current New */ | /* For CCP4 2000 : Current New */ | ||
typedef char mrcImageSymmetryOperator; | typedef char mrcImageSymmetryOperator; | ||
行104: | 行108: | ||
</pre> | </pre> | ||
+ | 付加的な情報を与えるために添付された情報です。とくに投影像のセットなどに利用されます。CCP4のフォーマットとの対応をとりながら、付加的な情報を付けています。 | ||
<pre> | <pre> |
2013年4月28日 (日) 20:34時点における版
mrcImage.hは、mrcImage型の画像を取り扱うための標準APIです。
クラス名(構造体)
mrcImage |- mrcImageHeader (画像の情報) |- mrcImageTailer (画像の付加的な情報) |- Image (画像)
メンバ
typedef struct mrcImage { mrcImageHeader Header; mrcImageParaTypeInteger BytePerImage; mrcImageParaTypeInteger BytePerBand; mrcImageParaTypeInteger BandPerPixel; mrcImageParaTypeInteger PixelPerImage; mrcStatusType status; char* Image; unsigned char* ImageCharImage; unsigned short* ImageShortImage; unsigned long* ImageLongImage; float* ImageFloatImage; double* ImageDoubleImage; mrcImageTailer* Tailer; mrcImageParaTypeInteger numTailer; /* Swap Bytes */ mrcImageParaTypeInteger flagByteSwap; /* flag CCP4-2000 */ mrcImageParaTypeInteger flagCCP4; mrcImageParaTypeInteger ImageOffset; mrcImageSymmetryOperator* SymmetryOperator; } mrcImage;
/* Image Header */ typedef union mrcImageHeader { unsigned char All[MRC_HEADER]; mrcImageParaTypeInteger Int[MRC_HEADER/4]; mrcImageParaTypeReal Real[MRC_HEADER/4]; _mrcImageHeader Cont; /* Conventional Header */ _mrcImageHeaderCCP4 ContCCP4; /* Current Header */ } mrcImageHeader; typedef struct _mrcImageHeader { mrcImageParaTypeIntegerCoord N; /* Data Numbers */ mrcImageMode Mode; /* Data Type */ mrcImageParaTypeIntegerCoord StartN; /* First in map */ mrcImageParaTypeIntegerCoord M; /* Number of Intervals */ mrcImageParaTypeRealCoord Length; /* Cell Dimensions : Angstrom */ mrcImageParaTypeReal Alpha; /* Cell Angle : Degree */ mrcImageParaTypeReal Beta; mrcImageParaTypeReal Gamma; mrcImageParaTypeInteger MAPC; /* Which Axis Corresponds to Columns */ mrcImageParaTypeInteger MAPR; /* Which Axis Corresponds to Rows */ mrcImageParaTypeInteger MAPS; /* Which Axis Corresponds to Sections */ mrcImageParaTypeReal AMin; /* Minimum Density Value */ mrcImageParaTypeReal AMax; /* Maximum Density Value */ mrcImageParaTypeReal AMean; /* Mean Density Value */ mrcImageParaTypeInteger ISPG; /* Space Group */ mrcImageParaTypeInteger NSYMBT; /* Number of bytes */ mrcImageParaTypeReal EXTRA[MRC_MAX_EXTRA]; /* Extra, user defined storage space */ mrcImageParaTypeReal OriginX; mrcImageParaTypeReal OriginY; mrcImageParaTypeInteger LabelN; char Label[MRC_MAX_LABEL_N][MRC_MAX_LABEL_LEN]; } _mrcImageHeader;
CCP4のフォーマットが2000年に正式に変更になったことに併せて、そのフォーマットに対応しました。以前のものと共用体によりいずれのフォーマットにも一端対応しています。
/* For CCP4 2000 : Current New */ typedef char mrcImageSymmetryOperator; typedef struct _mrcImageHeaderCCP4 { mrcImageParaTypeIntegerCoord N; /* Data Numbers */ mrcImageMode Mode; /* Data Type */ mrcImageParaTypeIntegerCoord StartN; /* First in map */ mrcImageParaTypeIntegerCoord NI; /* Number of Intervals */ mrcImageParaTypeRealCoord Length; /* Cell Dimensions : Angstrom */ mrcImageParaTypeReal Alpha; /* Cell Angle : Degree */ mrcImageParaTypeReal Beta; mrcImageParaTypeReal Gamma; mrcImageParaTypeInteger MAPC; /* Which Axis Corresponds to Columns */ mrcImageParaTypeInteger MAPR; /* Which Axis Corresponds to Rows */ mrcImageParaTypeInteger MAPS; /* Which Axis Corresponds to Sections */ mrcImageParaTypeReal AMin; /* Minimum Density Value */ mrcImageParaTypeReal AMax; /* Maximum Density Value */ mrcImageParaTypeReal AMean; /* Mean Density Value */ mrcImageParaTypeInteger ISPG; /* Space Group */ mrcImageParaTypeInteger NSYMBT; /* Number of bytes used for storing symmetry operators */ mrcImageParaTypeInteger LSKFLG; /* Flag for Skew transformation */ mrcImageParaTypeReal SKWMAT[9]; /* Skew matrix S */ mrcImageParaTypeReal SKWTRN[3]; /* Skew translation */ mrcImageParaTypeReal EXTRA[MRC_MAX_EXTRA_CCP4]; /* Extra, user defined storage space */ mrcImageParaTypeCharacter MAP[4]; mrcImageParaTypeInteger ARCHST; mrcImageParaTypeReal ARMS; mrcImageParaTypeInteger LabelN; char Label[MRC_MAX_LABEL_N][MRC_MAX_LABEL_LEN]; } _mrcImageHeaderCCP4;
付加的な情報を与えるために添付された情報です。とくに投影像のセットなどに利用されます。CCP4のフォーマットとの対応をとりながら、付加的な情報を付けています。
/* Tailer */ /* constant begin */ #define mrcImageTailerMode2DProjection 0 /* constant end */ /* struct begin */ typedef struct _mrcImageTailer { char Code[4]; mrcImageParaTypeInteger Mode; char EulerAngleMode[4]; mrcImageParaTypeReal Rot1; mrcImageParaTypeReal Rot2; mrcImageParaTypeReal Rot3; mrcImageParaTypeInteger Mirror; } _mrcImageTailer; typedef union mrcImageTailer { unsigned char All[MRC_TAILER]; mrcImageParaTypeInteger Int[MRC_TAILER/4]; mrcImageParaTypeReal Real[MRC_TAILER/4]; _mrcImageTailer Cont; } mrcImageTailer;