CT에서 Multi-Color Density Spectrum Analysis 만들기

in #ct7 years ago

-DICOM파일(특히 CT)에서로부터 얻어온 단순 grayscale 이미지를 시각적으로 인지할 수 있도록 부위별로 의미를 부여(설정)하고 이에 맞게 RGBA 로 변환하는 기술을 말한다.

  • 처리 과정에 대한 개요는 아래와 같다.
    CT 이미지 (RAW 데이터, HU 데이터 포함 원본 데이터)
    DICOM 표준에 근거하여 Windowing 처리
    8bit - GRAYSCALE 이미지 추출
    3D Viewer 에서 영상처리 컬러 변환
*각각 color 의 표현 범위는 HU(Hounsfield Unit)을 기반으로 한다.
   (참고1)
   HU(Hounsfield Unit)
   -1000             air & fat
   -100              fat
    0                water
   1-10              CSF
   12-18             brain edema
   22-32             white matter
   35-45             gray matter
   55-75             hemorrhage
   80-200            calcification & bone

*windowing 을 통해 grayscale 처리되어 나온 값은 0~255 범위 의 값이다.

여러가지 색으로 분배하기 위해서 배분을 위한 비율을 파악을 아래와 같이 했다.

그리고 총 5가지 색상으로 5단계씩 구분을 지었다.

  1. 초록 영역 단계별 수치 간격
    0.609375 <= 표현영역 <= 1.000 (5단계) - (39.0625%)
    (156) (255)
    초록영역의 5단계는 총 0.390625를 포함하는 구간이다.
    0.390625 (1.0-0.609375) / 5 = 0.078125
    (각 단계가 가지는 픽셀의 범위)
    0.078125 / 0.00390625 = 20 (총 100개)
    (각 단계가 표현 가능한 가지 수)

  2. 노랑 영역
    0.35546875 <= 표현영역 < 0.609375 (5단계) - (25.390625%)
    (91) (156)
    노란영역의 5단계는 총 0.25390625를 포함하는 구간이다.
    0.25390625(0.609375-0.35546875) / 5 = 0.05078125
    (각 단계가 가지는 픽셀의 범위)
    0.05078125 / 0.00390625 = 13 (총 65개)
    (각 단계가 표현 가능한 가지 수)

  3. 파랑 영역
    0.19921875 <= 표현영역 < 0.35546875 (5단계) - (15.625%)
    (51) (91)
    파랑영역의 5단계는 총 0.15625를 포함하는 구간이다.
    0.15625 (0.35546875-0.19921875) / 5 = 0.03125
    (각 단계가 가지는 픽셀의 범위)
    0.03125 / 0.00390625 = 8 (총 40개)
    (각 단계가 표현 가능한 가지 수)

  4. 빨강 영역
    0.0625 <= 표현영역 < 0.19921875 (5단계) 7 - (13.671875%)
    (16) (51)
    빨강영역의 5단계는 총 0.13671875를 포함하는 구간이다.
    0.13671875(0.19921875-0.0625) / 5 = 0.02734375
    (각 단계가 가지는 픽셀의 범위)
    0.02734375 / 0.00390625 = 7 (총 35개)
    (각 단계가 표현 가능한 가지 수)

  5. 검은 영역
    0.00390625 <= 표현영역 < 0.0625 (5단계) (5.89375%)
    (0) (16)
    검정영역의 5단계는 총 0.0589375를 포함하는 구간이다.
    0.05859375 (0.0625-0.00390625) / 5 = 0.01171875
    (각 단계가 가지는 픽셀의 범위)
    0.01171875 / 0.00390625 = 3
    (각 단계가 표현 가능한 가지 수)

  6. Zero Value(0.390625%)
    0<=표현영역<0.00390625

각각의 영역을 5단계로 균등하게 분리하고 나면 그 각 단계에서는 여러가지의 표현이 가능한 가지의 수가 있다.
각 단계가 표현 가능한 가지 수를 이용하여 좀더 자세히 구분을 해줄수가 있다.

  • 초록 영역 단계는 아래와 같이 5단계가 있고
    0.921875 <= 지정 색 <= 1.00 --초록 1단계 (236 ~ 255)
    0.84375 <= 지정 색 < 0.921875 --초록 2단계 (216 ~ 236)
    0.765625 <= 지정 색 < 0.84375 --초록 3단계 (196 ~ 216)
    0.6875 <= 지정 색 < 0.765625 --초록 4단계 (176 ~ 196)
    0.609375 <= 지정 색 < 0.6875 --초록 5단계 (156 ~176)

각 초록영역은 20가지 색상 표현이 가능해서 각단계를 다시 초록 노랑 파랑 빨강 5개씩 20개의 색으로 균등하게 표현하였다. 즉 초록 1단계를 다시 초록 5개, 노랑 5개, 파랑 5개, 빨강 5개로 구분 지었다는 의미이다.

초록 1단계(20가지)
0.98046875 <= green <= 1.00 (5개의 색 존재)
(251 ~ 255)
0.9609375 <= yellow < 0.98046875 (5개의 색 존재)
(246 ~ 250)
0.94140625 <= blue < 0.9609375 (5개의 색 존재)
(241 ~ 245)
0.921875 <= red < 0.94140625 (5개의 색 존재)
(236 ~ 240)

마찬가지로 초록 2단계도 위와 같이 아래처럼 20가지로 구분할수 있고
0.90234375 <= green < 0.921875
(231 ~ 235)
0.8828125 <= yellow < 0.90234375
(226 ~ 230)
0.86328125 <= blue < 0.8828125
(221 ~ 225)
0.84375 <= red < 0.86328125
(216 ~ 220)

나머지 초록 3~5단계도 같은 방법으로 구분한다.

초록 3단계(20가지)
0.82421875 <= green < 0.84375
0.8046875 <= yellow < 0.82421875
0.78515625 <= blue < 0.8046875
0.765625 <= red < 0.78515625

초록 4단계(20가지)
0.74609375 <= green < 0.765625
0.7265625 <= yellow < 0.74609375
0.70703125 <= blue < 0.7265625
0.6875 <= red < 0.70703125

초록 5단계(20가지)
0.66796875 <= green < 0.6875
0.6484375 <= yellow < 0.66796875
0.62890625 <= blue < 0.6484375
0.609375 <= red < 0.62890625

초록 영역을 좀더 자세히 구분한것 처럼
노랑 영역도 같은 방법으로 노랑 단계별로 구분한다.
그러나 노랑 영역은 표현 가능한 색상의 수가 13가지라서 균등 분배가 되지 않아서 4+3+3+3 = 13으로 구분하였다.

노랑 1단계(13가지)
0.59375 <= green < 0.609375 (4개의 색 존재)
(152 ~ 155)
0.58203125 <= yellow < 0.59375 (3개의 색 존재)
(149 ~ 151)
0.5703125 <= blue < 0.58203125 (3개의 색 존재)
(146 ~ 148)
0.55859375 <= red < 0.5703125 (3개의 색 존재)

노랑 2단계(13가지)
0.54296875 <= green < 0.55859375
0.53125 <= yellow < 0.54296875
0.51953125 <= blue < 0.53125
0.5078125 <= red < 0.51953125

노랑 3단계(13가지)
0.4921875 <= green < 0.5078125
0.48046875 <= yellow < 0.4921875
0.46875 <= blue < 0.48046875
0.45703125 <= red < 0.46875

노랑 4단계(13가지)
0.44140625 <= green < 0.45703125
0.4296875 <= yellow < 0.44140625
0.41796875 <= blue < 0.4296875
0.40625 <= red < 0.41796875

노랑 5단계(13가지)
0.390625 <= green < 0.40625
0.37890625 <= yellow < 0.390625
0.3671875 <= blue < 0.37890625
0.35546875 <= red < 0.3671875

파랑 영역은 표현 가능한 색상의 수가 8가지라서 균등하게 2+2+2+2 = 8로 구분하였다.

파랑 1단계(8가지)
0.34765625 <= green < 0.35546875 (2개의 색 존재)
(89 ~ 90)
0.33984375 <= yellow < 0.34765625 (2개의 색 존재)
(87 ~ 88)
0.33203125 <= blue < 0.33984375 (2개의 색 존재)
(85 ~ 86)
0.32421875 <= red < 0.33203125 (2개의 색 존재)
(83 ~ 84)

파랑 2단계(8가지)
0.31640625 <= green < 0.32421875
0.30859375 <= yellow < 0.31640625
0.30078125 <= blue < 0.30859375
0.29296875 <= red < 0.30078125

파랑 3단계(8가지)
0.28515625 <= green < 0.29296875
0.27734375 <= yellow < 0.28515625
0.26953125 <= blue < 0.27734375
0.26171875 <= red < 0.26953125

파랑 4단계(8가지)
0.25390625 <= green < 0.26171875
0.24609375 <= yellow < 0.25390625
0.23828125 <= blue < 0.24609375
0.23046875 <= red < 0.23828125

파랑 5단계(8가지)
0.22265625 <= green < 0.23046875
0.21484375 <= yellow < 0.22265625
0.20703125 <= blue < 0.21484375
0.19921875 <= red < 0.20703125

빨강 영역은 표현 가능한 색상의 수가 7가지라서 균등하게 2+2+2+1 = 7로 구분하였다.

빨강 1단계(7가지)
0.19140625 <= green < 0.19921875 (2개의 색 존재)
0.18359375 <= yellow < 0.19140625 (2개의 색 존재)
0.17578125 <= blue < 0.18359375 (2개의 색 존재)
0.171875 <= red < 0.17578125 (1개의 색 존재)

빨강 2단계(7가지)
0.1640625 <= green < 0.171875
0.15625 <= yellow < 0.1640625
0.1484375 <= blue < 0.15625
0.14453125 <= red < 0.1484375

빨강 3단계(7가지)
0.13671875 <= green < 0.14453125
0.12890625 <= yellow < 0.13671875
0.12109375 <= blue < 0.12890625
0.1171875 <= red < 0.12109375

빨강 4단계(7가지)
0.109375 <= green < 0.1171875
0.1015625 <= yellow < 0.109375
0.09375 <= blue < 0.1015625
0.08984375 <= red < 0.09375

빨강 5단계(7가지)
0.08203125 <= green < 0.08984375
0.07421875 <= yellow < 0.08203125
0.06640625 <= blue < 0.07421875
0.0625 <= red < 0.06640625

CT나 MRI 초음파와 같은 이미지는 회색같은 단색으로 그 정보를 표현을 한다. 이런 이미지가 단색(회색) 256가지로 구분되어서 촬영이 되더라고 사람의 눈은 그 단색을 최대 16단계 이상으로 구분해서 보기 힘들다고 한다.
그래서 이렇게 HU를 근거로 해서 여러가지 색으로 표현해서 보다 자세히 구분해 볼수가 있었다.

의료 영상분석에 많은 도움을 줄수 있으면 좋겠다.

Sort:  

와... 재미있게 잘 봤습니다. 다음에 참고가 될까 해서 와드 박고 갑니다 ^^;

Coin Marketplace

STEEM 0.15
TRX 0.22
JST 0.031
BTC 82152.46
ETH 2204.97
USDT 1.00
SBD 0.68