I used to use OpenCV in C language, but now decided give MATLAB a chance. I am pretty new to MATLAB and from the first minute I had a problem:
I read the image with:
X=dicomread('medicalimage.dcm')
but when I displayed the image with imshow(X), the image displayed was not the same with I uploaded even though I did not make any changes on the image. What is the reason for that? There is a pretty obvious contrast difference between the two images and also, it seems like I lost some of the details in the original image.
I am using MATLAB R2010b on my Ubuntu 12.04 system.
Filename: 'x.dcm'
FileModDate: '06-Nov-2006 09:49:26'
FileSize: 526966
Format: 'DICOM'
FormatVersion: 3
Width: 512
Height: 512
BitDepth: 12
ColorType: 'grayscale'
FileMetaInformationGroupLength: 202
FileMetaInformationVersion: [2x1 uint8]
MediaStorageSOPClassUID: '1.2.840.10008.5.1.4.1.1.2'
MediaStorageSOPInstanceUID: '1.3.12.2.1107.5.1.4.54693.30000006100507010800000005302'
TransferSyntaxUID: '1.2.840.10008.1.2.1'
ImplementationClassUID: '1.3.6.1.4.1.19291.2.1'
ImplementationVersionName: 'OSIRIX001'
SourceApplicationEntityTitle: 'OSIRIX'
SpecificCharacterSet: 'ISO_IR 100'
ImageType: 'ORIGINAL\PRIMARY\AXIAL\CT_SOM5 SPI'
SOPClassUID: '1.2.840.10008.5.1.4.1.1.2'
SOPInstanceUID: '1.3.12.2.1107.5.1.4.54693.30000006100507010800000005302'
StudyDate: '20061005'
SeriesDate: '20061005'
AcquisitionDate: '20061005'
ContentDate: '20061005'
StudyTime: '101556.921000'
SeriesTime: '102051.046000'
AcquisitionTime: '101818.126639'
ContentTime: '101818.126639'
AccessionNumber: '0'
Modality: 'CT'
Manufacturer: 'SIEMENS'
InstitutionName: 'hY9'
InstitutionAddress: ''
ReferringPhysicianName: [1x1 struct]
StationName: 'CT54693'
StudyDescription: 'Extrémités inférieures^Pied_cheville_UHR (Adulte)'
ProcedureCodeSequence: [1x1 struct]
SeriesDescription: 'Pied/cheville 1.0mm std'
PerformingPhysicianName: [1x1 struct]
OperatorName: [1x1 struct]
ManufacturerModelName: 'Sensation 64'
ReferencedStudySequence: [1x1 struct]
ReferencedImageSequence: [1x1 struct]
SourceImageSequence: [1x1 struct]
PatientName: [1x1 struct]
PatientID: 'vAD7q3'
PatientBirthDate: ''
PatientSex: ''
PatientAge: '000Y'
BodyPartExamined: 'EXTREMITY'
SliceThickness: 1
KVP: 120
DataCollectionDiameter: 500
DeviceSerialNumber: '54693'
SoftwareVersion: 'syngo CT 2006A'
ProtocolName: 'Pied_cheville_UHR'
ReconstructionDiameter: 206
DistanceSourceToDetector: 1040
DistanceSourceToPatient: 570
GantryDetectorTilt: 0
TableHeight: 95
RotationDirection: 'CW'
ExposureTime: 1000
XrayTubeCurrent: 110
Exposure: 122
FilterType: '0'
GeneratorPower: 17
FocalSpot: 0.7000
DateOfLastCalibration: '20061005'
TimeOfLastCalibration: '073350.000000'
ConvolutionKernel: 'U30u'
PatientPosition: 'FFS'
StudyInstanceUID: '2.16.840.1.113669.632.20.1211.10000315526'
SeriesInstanceUID: '1.3.12.2.1107.5.1.4.54693.30000006100507010800000005268'
StudyID: 'A10025547593'
SeriesNumber: 5
AcquisitionNumber: 3
InstanceNumber: 34
ImagePositionPatient: [3x1 double]
ImageOrientationPatient: [6x1 double]
FrameOfReferenceUID: '1.3.12.2.1107.5.1.4.54693.30000006100506302075000001028'
SliceLocation: 58
ImageComments: 'JPEG 2000 lossless - Version 4.0.2 (c) Image Devices GmbH'
SamplesPerPixel: 1
PhotometricInterpretation: 'MONOCHROME2'
Rows: 512
Columns: 512
PixelSpacing: [2x1 double]
BitsAllocated: 16
BitsStored: 12
HighBit: 11
PixelRepresentation: 1
SmallestImagePixelValue: 0
LargestImagePixelValue: 2583
WindowCenter: [2x1 double]
WindowWidth: [2x1 double]
RescaleIntercept: -1024
RescaleSlope: 1
WindowCenterWidthExplanation: 'WINDOW1\WINDOW2'
RequestingService: 'Service d'orthopédie pédiatri'
RequestedProcedureDescription: 'CT pied-cheville'
RequestedProcedureCodeSequence: [1x1 struct]
RequestAttributesSequence: [1x1 struct]
On the left there is the output of imshow and on the right, there is the original image: http://img23.imageshack.us/img23/3166/differencem.png?http://imageshack.us/
Result of imshow(X,[0 255]) : http://img248.imageshack.us/img248/4140/difference2.png?http://imageshack.us/
Link to my DCM image: http://www.speedyshare.com/7enTP/x.dcm.zip
If your DICOM data contains a colormap, then you should import it too using a second output to dicomread and apply it to the image using the second argument of imshow. Example:
[X, map] = dicomread('US-PAL-8-10x-echo.dcm');
imshow(X(:,:,1,1),map)

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With