Python
[Python] Segmentation label 시각화하기 - 픽셀 값이 너무 작을 때
당니이
2022. 9. 5. 22:07
반응형
컴퓨터비전을 하다보면 segmentation label 픽셀값이 너무 작아서, imshow 등으로 시각화를 하면 잘 보이지 않을 때가 있다. 예를 들어서 binary segmentation이라 픽셀이 [0, 1]로 구성되는데, 이를 시각화하면 1은 너무 작은 픽셀 값이라 모두 검정 색으로 보이는 것이다. 따라서 이럴 때 시각화를 편하게 하는 두가지 방법을 기록해 놓으려고 한다.
1. matplot imshow 이용하기
편하게 matplot을 이용할 수 있다. 다음과 같이 말이다!
import matplotlib.pyplot as plt
plt.imshow(array)
그럼 아래와 같이 가시적인 이미지를 얻을 수 있다. (lane detection dataset 이다)
한가지 단점은, 가로 세로 축이 표시된다는 것이라 이러한 이미지를 저장하려고 할 때 조금 난처할 수 있다. 하지만 이럴 때는 다음과 같이 이용하면 된다.
plt.savefig('savename.png')
2. 픽셀 값 Rescale하기
다음은 PIL을 이용해 픽셀을 rescale해 시각화하는 방법이다.
from PIL import Image
label = put your array
rescaled = (255.0/label.max() * (label - label.min())).astype(np.uint8)
im = Image.fromarray(rescaled)
그러면 다음과 같은 흑백 그림을 얻을 수 있다. (참고로 시각화를 위해서는 int8 타입으로 바꿔줘야 한다.)
반응형