1. Array 다루기
- 3차원 배열(RGB)의 조건부 수정
- # array.shape : (1024, 12xx, 3) -> [[[0, 0, 0], [ ... ]]] array[(array.sum(axis=-1) == 0)] = 255 # [[[0, 0, 0], [ ... ]]] 경우에서 # [0, 0, 0](검은색) 한 묶음으로 더해지는데 값이 0인 경우 → [255, 255, 255](흰색)으로 수정
- 두 배열 동일한지 여부 (비교) np.array_equal(a1, a2, equal_nan=False)
- 요소 별 곱셈 * or np.multiply()
2. 이미지↔ 픽셀 (OpenCV, PIL)
- 이미지를 픽셀로 보기 (OpenCV)
img = cv2.imread(img_name)
- 이미지를 픽셀로 보기 (PIL.Image)
img = Image.open(img_name)
# 이미지를 array로 보기
img_array = np.array(img)
# array를 이미지로 전환
img = Image.fromarray(img_array)
- 프레임 단위로 이미지를 읽는 경우 (PIL.Image)
img = Image.seek(img_name)
- 이미지 영역에 대한 통계 계산 (픽셀 통계 계산) : PIL.ImageStat 모듈 - Doc
- RGBA → RGB : 형식 변환 (OpenCV)
- cv2.cvtColor()
# OpenCV
img = cv2.cvtColor(src, RGBA2RGB)
# PIL Image
img = Image.open().convert("RGB")
3. Image 보기
- 이미지 하나만 확인해보기 (PIL.Image)
Image.fromarray(array)
- 이미지 여러장 한번에 보기 (matplotlib.pyplot)
fig, axes = plt.subplots(1,2,figsize=(26, 6))
img1 = Image.fromarray(array1)
axes[0].axis('off') # 축 숨기기
axes[0].imshow(img1)
img2 = Image.fromarray(array2)
axes[1].axis('off')
axes[1].imshow(img2)
- → 테두리 주위의 공백을 없애기 위해savefig()메서드에서bbox_inches = 'tight'를 설정
- → 이미지 주변의 흰색 테두리를 제거하려면savefig()메서드에서pad_inches = 0을 설정
728x90
'데이터 어쩌구 > 전처리 및 시각화' 카테고리의 다른 글
[python] Demo 만들기 : Streamlit (0) | 2023.08.28 |
---|---|
[Pandas] DataFrame 고급 사용 (0) | 2023.08.26 |
[프로젝트] 시각화 데이터프레임 조작하기 (0) | 2022.04.06 |
[객체지향] EDA : 배경지식 (0) | 2022.01.17 |
[객체지향] Pandas (0) | 2022.01.17 |