0
votes

I am working on a 3D DICOM file. After it is read (using MATLAB, for example) I see that it contains some text information apart from the actual scan image. I mean text which is visible in the image when I do implay(), not the header text in the DICOM file. Is there any way by which I can load only the raw data without the text? The text is hindering my processing.

EDIT: I cannot share the image I'm working on due to it being proprietary, but I found the following image after googling:
http://www.microsoft.com/casestudies/resources/Images/4000010832/image7.jpeg http://www.microsoft.com/casestudies/resources/Images/4000010832/image7.jpeg

Notice how the text on the left side partially overlaps the image? There is a similar effect in the image I'm working on. I need just the conical scan image for processing.

2
please attache an example figure to make your question more clear.Shai
Is the text an overlay, or is it burned in the image (typical done in the case of ultrasound images) ?jap1968
@Shai, I can't really attach the figure since it is proprietary & I do not have permision to share it.Captain_Haddock
@jap1968 could you please tell me of any way I can find that out? When I do dicomread() in matlab, the text is also seen alongwith the scan image. It is indeed an ultrasound scan so I suppose it is burned in the image?Captain_Haddock
@Shai, I found a somewhat similar image on google. I have added a link to it.Captain_Haddock

2 Answers

2
votes

As noted, you need to provide more information, as there are a number of ways the overlay can be added: if it's burned into the image, you're generally out of luck; if it's in the overlay plane module (the 60xx tag group), you can probably just remove those prior to passing into Matlab; if it's stored in the unused high bit (an old but common method), you'll have to use the overlay bit position (60xx,0102) to clear out the data in the pixel data.

For the last one, something like the Matlab equivilent of this Java code:

int position = object.getInt( Tag.OverlayBitPosition, 0 );
if( position == 0 ) return;

// Remove the overlay data in high-bit specified.
//
int bit = 1 << position;
int[] pixels = object.getInts( Tag.PixelData );
int count = 0;
for( int pix : pixels )
{
   int overlay = pix & bit;
   pixels[ count++ ] = pix - overlay;
}
object.putInts( Tag.PixelData, VR.OW, pixels );
0
votes

If you refer to the text in the blue area on top of the image, these contents are burned into the image itself.

The only solution to remove that is to apply a mask to this area of the image.

Be careful, because doing this is a modification of the original DICOM image. Such kind of modifications are not allowed in some scenarios.