DICOM CINE file C#.Net
I have read the first frame of a DICOM CINE image, then I want t开发者_Python百科o read the second frame and so on. How much byte should I seek the file pointer to get next frame(If the frame size is width=640, height=480).
by DICOM cine image, you mean multi-frame DICOM files right? May i know : which platform you are on, which dicom lib/SDK you are using? and for your DICOM image, has it been decompressed? to BMP(32-bit/24-bit)?
If your dicom file is in 24bit(3-bytes) BMP, then your next frame of pixel data would be 640*480*3.
Assuming you are dealing with uncompressed (native) multi-frame DICOM. In that case, you need to extract following information before proceeding to calculate the size of each image frame.
- Transfer Syntax (0002, 0010) to make sure dataset set is not using encapsulated/compressed transfer syntax.
- Sample per Pixel (0028, 0002): This represents number of samples (planes) in this image. As for example 24-bit RGB will have value of 3
- Number of Frames (0028, 0008): total number of frames
- Rows (0028, 0010)
- Columns (0028, 0011)
- Bit Allocated (0028, 0100): Number of bits allocated for each pixel sample.
- Planar Configuration (0028, 0006): Conditional element that indicates whether the pixel data are sent color-by-plane or color-by-pixel. This is required if Samples per Pixel (0028, 0002) has a value greater than 1.
You would calculate the frame size as follows:
Frame size in bytes = Rows * Columns * (Bit Allocated* Sample per Pixel/8)
精彩评论