WWL (Window Width Level)
WWL이라고 DICOM에서 CR, MR, CT영상의 Brightness
와 Contrast
를 조정하여 medical image를 좀 더 다양하게 볼수 있도록 도와 줍니다.
WWL을 Window의 width와 level을 조절 한다고 하여 Window width level이라고 하기도 하고, level
대신 center
라는 용어를 사용하기도 합니다.
아래와 같이 x, y축을 가지며, x축이 input, y축이 출력으로 사용하는 window 입니다.
width = 1024, cener = 512인 wwl의 graph 입니다.
x축이 실제 pixel data 값인 input이 되는거고, y축이 output인 최종 출력된는 gray scale값이 됩니다.
python으로 간단하게 구현해 보면,
먼저 numpy array를 input pixel 값 만큼 만듭니다. 10bit 짜리 pixel data이면 1024 크기로 설정 합니다.
d = np.arange(1024)
그리고 width, center 값을 임의로 설정 합니다. 우선 전체 window로 설정 해 보죠
width = 700
center = 512
그럼 center를 기준으로 width/2
만큼 이전의 모든 값은 0이고,
반대로 `width/2’만큼 이후의 값은 모든 값이 255값이 됩니다.
start = center - (width/2)
end = center + (width/2)
d[:start] = 0 d[end:] = 255
마지막으로 실제 linear 기울기에 맞는 값으로 설정 해 주면 되겠네요
idx = start
for i in d[start:end] :
d[idx] = (idx-start) * (256/width)
idx = idx + 1
최종 matplotlib로 plot을 출력 해 보면
plot(d)