컴퓨터비전을 하다보면 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 타입으로 바꿔줘야 한다.)
반응형
'Python' 카테고리의 다른 글
[Python] Python Class에 대한 기초 정리하기 (0) | 2023.06.11 |
---|---|
[Python] 디렉토리 내 특정 파일 삭제하기 (0) | 2022.10.11 |
[Python] 디버거 pdb 사용법 - 이 좋은걸 지금 알았다니.. (0) | 2022.09.27 |
[Python] shutil과 os로 디렉토리, 폴더 조작하기 (0) | 2022.08.05 |