In my Android project I am currently using Imebra library to extract image frames from a dicom file and save them as Bitmaps. After that I use ffmpeg to create a video from these frames. Every thing is working well so far, but my only concern is whether I will loose any quality or information by using following methods from Imebra library:
Image image = imageIterator.next();
TransformsChain chain = transform(image);
Bitmap bitmap = getBitmap(image, chain);
Furthermore, if I am using any information by saving my image frames as bitmaps, can I save them as the raw format (by raw I mean imebra.Image
, I am not sure if that's the same as .raw format?) and use them directly with ffmpeg?
The image you get with
DrawBitmap::getBitmap
is always an RGB 24 bit per pixel one: you will lose information in the case that the image uses more than 8 bit per color channel (e.g. a 16 bit grayscale image will lose the lower 8 bit of the pixel information).You could get an higher bit per pixel number by avoiding using
DrawBitmap::getBitmap
and by applying directly the transforms yourself (VOI/LUT, color transformation, high bit transform). After you have anImage
with the desired color space and bit per pixel, than use theImage::GetReadingDataHandler
to access the image underlying memory and generate the bitmap for ffmpeg.Disclosure: I'm the author of Imebra.