3

以前は C 言語で OpenCV を使用していましたが、MATLAB を使用することにしました。私は MATLAB を初めて使用し、最初の 1 分から問題が発生しました。

私は次のように画像を読みました:

X=dicomread('medicalimage.dcm') 

しかし、imshow(X) で画像を表示すると、画像に何も変更を加えていないにもかかわらず、表示される画像はアップロードした画像と同じではありませんでした。その理由は何ですか?2 つの画像には明らかなコントラストの違いがあり、元の画像の細部の一部が失われているようにも見えます。

Ubuntu 12.04 システムで MATLAB R2010b を使用しています。

                      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]

左側に imshow の出力があり、右側に元の画像があります: http://img23.imageshack.us/img23/3166/differencem.png?http://imageshack.us/

imshow(X,[0 255]) の結果: http://img248.imageshack.us/img248/4140/difference2.png?http://imageshack.us/

私の DCM イメージへのリンク: http://www.speedyshare.com/7enTP/x.dcm.zip

4

4 に答える 4

2

DICOM データにカラーマップが含まれている場合は、2 番目の出力を使用してそれもインポートしdicomread、 の 2 番目の引数を使用してイメージに適用する必要がありますimshow。例:

[X, map] = dicomread('US-PAL-8-10x-echo.dcm');
imshow(X(:,:,1,1),map)

ここに画像の説明を入力

于 2012-10-08T14:10:12.000 に答える
1

ドキュメントに記載されているように、DICOM 情報を提供しようとしましたか?

info = dicominfo('medicalimage.dcm');
Y = dicomread(info);
figure, imshow(Y);
imcontrast;
于 2012-10-08T15:25:57.957 に答える
1

imshow最小および最大強​​度に基づいて画像の強度をスケーリングします。最大強度が 255 であると仮定して、 を試してくださいimshow(X,[0 255]);

于 2012-10-08T14:06:26.700 に答える
1

DICOM 情報は高いダイナミック レンジを持っています。画像のヘッダーには、12 ビット データであることが示されています。関心のある機能を示すダイナミック レンジの部分にウィンドウの中心とウィンドウの幅を設定し、そのウィンドウ設定に対応する最小および最大のピクセル値を計算する必要があります。これらの値を決定したら、以下のコードはダイナミック レンジのその部分を使用して画像を表示します。

imshow(img, [minPixelValue, maxPixelValue]);
于 2012-10-09T13:52:08.270 に答える