[Dcmlib] FileHelper->GetImageData()
Jean-Pierre ROUX
jean-pierre.roux at creatis.insa-lyon.fr
Mon Sep 5 05:50:44 CEST 2005
At 21:54 -0400 4/09/05, Greg Book wrote:
>Thanks for the info. That function will be very helpful. So, what
>happens if 'samples per pixel' is not 3? I would assume it's 1 when
>its a monochrome image?
'Sample Per Pixel' is a mandatory Dicom field.
It can contain only 1 (monochrome image, or palette color image) or 3
(RGB or YBR images)
> If thats the case, are monochrome images ever compressed, and if
>so, how would they be read using gdcm.
Any kind of image may be compressed or not.
gdcm users don't have to worry about compression.
Just write, as for any image:
gdcm::File *f = new gdcm::File();
f->SetFileName(yourFileName);
f->Load(); // Load the header;
if (!f->IsReadable())
{
--> stop everything :-(
}
gdcm::FileHelper *fh = new gdcm::FileHelper(f);
uint8_t *imageData;
imageData = fh->GetImageData();
The pixels are now loaded in memory, line by line, RGB, RGB, RGB ...,
if it's a color image.
According to what you found in f, you decide how you must cast.
JP
>
>-Greg
>
>
>Jean-Pierre ROUX wrote:
>
>>At 14:04 -0400 2/09/05, Greg Book wrote:
>>
>>>I'm interested in using the GetImageData() function to read my
>>>files instead of reading them by opening them and reading the
>>>bytes. Once you've called this function and have an array of
>>>unsigned integers... how is that array structured?
>>>Is it one byte for R, G, B? so 3 bytes per pixel? Then I assume
>>>line breaks occur at pixel (3 byte) boundaries? So to read a
>>>100x100pixel image, I'd take the first 300 bytes of the buffer
>>>returned from GetImageData as the first line of the image, then
>>>get the next 300 for the next line, and so on?
>>
>>
>>You're absolutely right.
>>In Dicom, there are 2 possibilities for RGB images :
>>- Storing 'Plane R + Plage G + Plane B'
>>- Storing pixels RGB RGB RGB ...
>>
>>We choosed to convert them as RGB RGB RGB ...
>>(we convert YBR to RGB too).
>>
>>Just be sure that field 'Samples per Pixel' value is 3.
>>JP
>>
>>>
>>>Thanks,
>>>Greg
>>>_______________________________________________
>>>Dcmlib mailing list
>>>Dcmlib at creatis.insa-lyon.fr
>>>http://www.creatis.insa-lyon.fr/mailman/listinfo/dcmlib
>>
>>
>> Jean-Pierre ROUX
>> CREATIS - CNRS UMR 5515, INSERM U 630
>> Laboratoire de Radiologie Experimentale
>> Hopital Cardiologique
>> 28 Avenue du Doyen LEPINE
>> B.P. Lyon-Montchat
>> 69394 Lyon Cedex 03
>>
>> Tel : (+33) 04 72 35 74 12
>> Fax : (+33) 04 72 68 49 16
>> URL : http://www.creatis.univ-lyon1.fr
>> e-mail : jpr at creatis.univ-lyon1.fr
>>
Jean-Pierre ROUX
CREATIS - CNRS UMR 5515, INSERM U 630
Laboratoire de Radiologie Experimentale
Hopital Cardiologique
28 Avenue du Doyen LEPINE
B.P. Lyon-Montchat
69394 Lyon Cedex 03
Tel : (+33) 04 72 35 74 12
Fax : (+33) 04 72 68 49 16
URL : http://www.creatis.univ-lyon1.fr
e-mail : jpr at creatis.univ-lyon1.fr
More information about the Dcmlib
mailing list