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

in ct •  7 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를 근거로 해서 여러가지 색으로 표현해서 보다 자세히 구분해 볼수가 있었다.

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

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

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