주요 콘텐츠

medicalImage

2차원 의료 영상 픽셀 데이터 및 파일 메타데이터

R2022b 이후

설명

medicalImage 객체는 단일 DICOM 파일에 포함된 2차원 의료 영상 또는 영상 시퀀스의 픽셀 데이터와 메타데이터를 저장합니다. 영상 시퀀스는 초음파 비디오와 같이 시간으로 연결된 일련의 2차원 영상 프레임입니다.

생성

설명

medImage = medicalImage(dirname)은 디렉터리 dirname에 있는 단일 DICOM 파일에 대한 medicalImage 객체를 만듭니다.

medImage = medicalImage(filename)은 단일 DICOM 파일 filename에 포함된 영상에 대한 medicalImage 객체를 만듭니다.

예제

medImage = medicalImage(sourceTable)sourceTable에 나열된 영상에 대한 medicalImage 객체를 만듭니다. 테이블에는 2차원 DICOM 영상의 메타데이터를 지정하는 행이 하나만 있어야 합니다.

예제

medImage = medicalImage(sourceTable,rowname)sourceTable의 행 rowname에 나열된 영상에 대한 medicalImage 객체를 만듭니다. 이 구문을 사용하여, 여러 행으로 구성된 테이블의 한 행을 이름 또는 숫자형 인덱스로 지정할 수 있습니다.

예제

medImage = medicalImage(imds)는 영상 데이터저장소 객체 imds로 지정된 영상에 대한 medicalImage 객체를 만듭니다.

예제

medImage = medicalImage(pixels,info)는 영상 데이터 pixelsdicominfo 함수에서 반환된 메타데이터 구조체인 info를 지정하여 medicalImage 객체를 만듭니다. pixelsPixels 속성값을 설정합니다.

예제

입력 인수

모두 확장

의료 영상 데이터가 포함된 디렉터리의 이름으로, string형 스칼라 또는 문자형 벡터로 지정됩니다. dirname은 초음파 비디오와 같이 시간으로 연결된 2차원 영상 하나 또는 2차원 영상 시퀀스를 지정하는 DICOM 파일이 한 개 포함된 디렉터리의 이름입니다.

의료 영상 데이터가 포함된 파일의 이름으로, string형 스칼라 또는 문자형 벡터로 지정됩니다. filename은 초음파 비디오와 같이 시간으로 연결된 2차원 영상 하나 또는 일련의 2차원 영상이 포함된 단일 DICOM 파일을 지정할 수 있습니다.

DICOM 파일 메타데이터의 모음으로, dicomCollection 함수에서 반환된 테이블로 지정됩니다.

sourceTable에서 읽어 들일 테이블 행의 이름 또는 인덱스로, string형 스칼라, 문자형 벡터 또는 양의 정수 스칼라로 지정됩니다. 이름으로 행을 지정하려면 rowname을 string형 스칼라 또는 문자형 벡터로 지정하십시오. 숫자형 인덱스로 행을 지정하려면 rowname을 양의 정수 스칼라로 지정하십시오.

DICOM 파일이 한 개 포함된 데이터저장소로, imageDatastore 객체로 지정됩니다.

DICOM 파일 메타데이터로, dicominfo 함수에서 반환된 구조체로 지정됩니다.

속성

모두 확장

영상 픽셀 값으로, m×n×t×c 숫자형 배열로 지정됩니다. 여기서 mn은 2차원 영상 또는 영상 프레임의 공간 차원이고, t는 시간으로 연결된 영상 프레임 개수이며, c는 각 프레임의 색 채널 개수입니다. 파일에 RescaleInterceptRescaleSlope 메타데이터 특성이 포함되어 있으면, medicalImage는 이를 기준으로 명암 값을 다시 스케일링합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

컬러맵으로, 다음 옵션 중 하나로 지정됩니다.

  • 소스가 인덱스 영상인 경우 Colormap을 [0, 1] 범위의 값을 갖는 j×3 숫자형 행렬로 지정합니다. 각 행은 컬러맵의 하나의 색에 대한 빨간색, 녹색, 파란색 성분을 지정하는, 요소를 3개 가진 RGB 3색입니다.

  • 소스가 회색조 또는 RBG 영상인 경우 Colormap은 비어 있습니다([]).

데이터형: double

읽기 전용 속성입니다.

실제 공간 단위로, 다음 옵션 중 하나로 지정됩니다.

  • 픽셀 간격이 파일 메타데이터에 지정된 경우 공간 단위 값은 "mm"입니다.

  • 메타데이터에 픽셀 간격 정보가 지정되지 않은 경우 SpatialUnits"unknown"입니다.

데이터형: string

읽기 전용 속성입니다.

프레임 간의 밀리초 수로, 다음 옵션 중 하나로 지정됩니다.

  • Frame Time 메타데이터 특성이 파일에 지정된 경우 프레임 시간 값은 메타데이터에서 추출된 숫자형 스칼라로 지정됩니다.

  • 메타데이터에 프레임 시간이 지정되지 않은 경우 FrameTime은 비어 있습니다([]).

데이터형: double

읽기 전용 속성입니다.

영상 데이터의 프레임 개수로, 숫자형 스칼라로 지정됩니다.

데이터형: double

읽기 전용 속성입니다.

픽셀 중심 간의 간격으로, 요소를 2개 가진 [Δx Δy] 형식의 벡터로 지정됩니다. Δx 값과 Δy 값은 각각 x 방향과 y 방향으로 인접한 픽셀 간의 거리이며, SpatialUnits 속성으로 지정된 단위로 표시됩니다. 파일 메타데이터에 픽셀 간격이 지정되지 않은 경우 디폴트 값은 [1 1]입니다.

데이터형: double

읽기 전용 속성입니다.

영상 데이터 캡처에 사용되는 이미징 모달리티로, string형 스칼라로 지정됩니다. 이 모달리티는 파일 메타데이터(있는 경우)에서 추출됩니다. 일반적인 값에는 디지털 방사선 촬영술의 경우 "DX", 초음파 검사의 경우 "US", 엑스레이 혈관 조영술의 경우 "XA", 유방 촬영술의 경우 "MG"가 포함되지만 이에 국한되지 않습니다. 파일 메타데이터에 모달리티가 지정되지 않은 경우 디폴트 값은 "unknown"입니다.

데이터형: string

읽기 전용 속성입니다.

표시 범위 윈도우 중심으로, 다음 옵션 중 하나로 지정됩니다.

  • Window Center 특성이 파일 메타데이터에 지정된 경우 WindowCenter 값은 메타데이터에서 추출된 숫자형 스칼라로 지정됩니다.

  • 메타데이터에 윈도우 중심이 지정되지 않은 경우 WindowCenter는 비어 있습니다([]).

데이터형: double

읽기 전용 속성입니다.

표시 범위 윈도우 너비로, 다음 옵션 중 하나로 지정됩니다.

  • Window Width 특성이 파일 메타데이터에 지정된 경우 WindowWidth 값은 메타데이터에서 추출된 숫자형 스칼라로 지정됩니다.

  • 메타데이터에 윈도우 너비가 지정되지 않은 경우 WindowWidth는 비어 있습니다([]).

데이터형: double

객체 함수

extractFrameExtract pixel data for one frame of 2-D medical image series
implay비디오 뷰어 앱에서 2차원 의료 영상 시리즈 보기
montage사각형 몽타주 형태로 여러 영상 표시

예제

모두 축소

2차원 엑스레이 영상의 이름을 지정합니다. 영상은 이 예제에 지원 파일로 첨부되어 있습니다.

filename = "forearmXrayImage1.dcm";

이 파일에 대한 medicalImage 객체를 만듭니다.

medImage = medicalImage(filename)
medImage = 
  medicalImage with properties:

          Pixels: [1540×1250 uint16]
        Colormap: []
    SpatialUnits: "mm"
       FrameTime: []
       NumFrames: 1
    PixelSpacing: [0.1390 0.1390]
        Modality: 'DX'
    WindowCenter: 2048
     WindowWidth: 4096

영상 픽셀 데이터는 Pixels 속성에 저장됩니다. medImage에 저장된 영상을 표시합니다.

imshow(medImage.Pixels,[])

Figure contains an axes object. The hidden axes object contains an object of type image.

이 예제와 함께 DICOM 파일로 저장된 심장 초음파 검사 영상 시리즈가 포함된 디렉터리의 이름을 지정합니다.

dirname = pwd;

그 디렉터리에 있는 DICOM 파일의 세부 정보를 dicomCollection 함수를 사용하여 테이블에 수집합니다.

sourceTable = dicomCollection(dirname);

심장 초음파 검사 시퀀스에 대한 medicalImage 객체를 만듭니다.

medImage = medicalImage(sourceTable)
medImage = 
  medicalImage with properties:

          Pixels: [600×800×3×3 uint8]
        Colormap: []
    SpatialUnits: "unknown"
       FrameTime: []
       NumFrames: 3
    PixelSpacing: [1 1]
        Modality: 'OT'
    WindowCenter: []
     WindowWidth: []

이 예제와 함께 팔뚝의 2차원 엑스레이 영상 3개가 포함된 디렉터리의 이름을 지정합니다.

dataFolder = pwd;

그 디렉터리에 있는 DICOM 파일의 세부 정보를 dicomCollection 함수를 사용하여 테이블에 수집합니다. 테이블에는 3개의 DICOM 시리즈에 대응하는 행이 3개 있습니다.

sourceTable = dicomCollection(dataFolder);

DICOM 모음 테이블과 숫자형 행 인덱스를 지정하여 두 번째 엑스레이 영상에 대한 Medical Image 객체를 만듭니다.

medImage = medicalImage(sourceTable,2)
medImage = 
  medicalImage with properties:

          Pixels: [1932×1492 uint16]
        Colormap: []
    SpatialUnits: "mm"
       FrameTime: []
       NumFrames: 1
    PixelSpacing: [0.1390 0.1390]
        Modality: 'DX'
    WindowCenter: 2048
     WindowWidth: 4096

이 예제와 함께 단일 DICOM 파일로 저장된 심장 초음파 검사 영상 시리즈가 포함된 디렉터리의 이름을 지정합니다.

dataFolder = pwd;

DICOM 파일이 포함된 영상 데이터저장소를 dataFolder 디렉터리에 만듭니다. DICOM 파일을 읽어 들이기 위한 사용자 지정 읽기 함수를 지정합니다.

dicomds = imageDatastore(dataFolder, ... 
    FileExtensions=".dcm",ReadFcn=@(x) dicomread(x));

심장 초음파 검사 영상 시리즈에 대한 Medical Image 객체를 만듭니다.

medImage = medicalImage(dicomds)
medImage = 
  medicalImage with properties:

          Pixels: [600×800×3×3 uint8]
        Colormap: []
    SpatialUnits: "unknown"
       FrameTime: []
       NumFrames: 3
    PixelSpacing: [1 1]
        Modality: 'OT'
    WindowCenter: []
     WindowWidth: []

2차원 엑스레이 영상의 이름을 지정합니다. 파일은 이 예제에 지원 파일로 첨부되어 있습니다.

filename = "forearmXrayImage1.dcm";

dicominfo 함수를 사용하여 DICOM 파일에서 메타데이터를 읽어 들입니다.

info = dicominfo(filename);

이 파일에 대한 medicalImage 객체를 만듭니다.

medImage = medicalImage(filename)
medImage = 
  medicalImage with properties:

          Pixels: [1540×1250 uint16]
        Colormap: []
    SpatialUnits: "mm"
       FrameTime: []
       NumFrames: 1
    PixelSpacing: [0.1390 0.1390]
        Modality: 'DX'
    WindowCenter: 2048
     WindowWidth: 4096

영상 픽셀 데이터는 Pixels 속성에 저장됩니다. 픽셀 값에 평활화 필터를 적용하고 평활화된 값을 새 영상 배열 imSmooth로 저장합니다.

sigma = 2;
imSmooth = imgaussfilt(medImage.Pixels,sigma);

평활화된 픽셀 값이 포함된 새 medicalImage 객체를 만듭니다. 원래 영상과 동일한 공간 정보를 유지하려면 메타데이터 구조체 info를 지정하십시오.

medImageSmoothed = medicalImage(imSmooth,info)
medImageSmoothed = 
  medicalImage with properties:

          Pixels: [1540×1250 uint16]
        Colormap: []
    SpatialUnits: "mm"
       FrameTime: []
       NumFrames: 1
    PixelSpacing: [0.1390 0.1390]
        Modality: 'DX'
    WindowCenter: 2048
     WindowWidth: 4096

버전 내역

R2022b에 개발됨