에러 코드
Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).
참고한 답안
문제 발생
픽셀별로 R,G,B 로 표현되어있는 원본 이미지 파일을 KMeans를 통해 8개의 군집으로 묶어 이미지를 다시 표현해 주려 하였다.
바꾼 이미지, segmented_img 를 가지고 이제 plt.imshow 함수를 이용하여 이미지로 봐보려 하는데
에러가 발생하였다.
RGB가 0에서 1까지의 float으로 표현되거나 또는 0에서 255 까지의 int 형으로 표시되어야 한다는 내용인데
segmented_img 의 unique 값을 찍어보니 0부터 255까지의 소수 형태로 나타나있다. 그래서 에러가 발생했었나 보다.
unique 을 찍었는데 왜 24개가 나올까 하는 의문이 든다면, 그건 R,G,B가 8개의 군집으로 표현되어서 그렇다. ( 3 * 8 = 24 )
방법은 int형으로 만들어주거나 또는 255로 나눠서 정규화 시켜주면 될 것 같다는 것이다.
스택오버플로우에서는 255를 곱한 뒤 type을 uint 로 바꾼게 추천수가 높았는데
그건 색깔 자체를 바꾸는 식이기 때문에 잘못된 식이다.
아무런 생각 없이 스택오버플로우의 답안을 그대로 가져다 쓰지말고
에러의 의미에 대해 한번씩 생각해보는 습관을 갖도록 하자는 깨달음을 얻게 되었다.
p.s. 다른 이미지 파일로 해도 잘된다.
'근황 토크 및 자유게시판' 카테고리의 다른 글
[Google Colab] 코랩에서 캐글 데이터 다운로드 하기 (0) | 2022.09.28 |
---|---|
[스쿨선발대] 데이터 사이언스 스쿨 넉달 후기 (0) | 2022.08.29 |
[konlpy] 자연어 처리 환경 설치 (0) | 2022.08.21 |
[네이버 검색 api] 052 에러 (0) | 2022.08.21 |
'float' object has no attribute 'replace' (pandas) (0) | 2022.08.20 |