Load Packages
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
%matplotlib inline
이미지 파일 열기
- opencv로도 열 수 있지만 shape의 순서가 바뀔 때도 있어 PIL로 여는 것을 선호
path = 'images/dog.jpeg'
image_pil = Image.open(path)
image = np.array(image_pil)
image.shape # (334, 500, 3)
테스트용으로 images폴더 안에 dog.jpeg파일을 넣어두었다.
Pillow 라이브러리를 이용하여 해당 경로에있는 사진을 불러오고 시각화를위해 np.array화 시켜준다.
image.shape은 이미지마다 크기가 달르니 지금은 크게 신경쓰지않아도된다.
가장 뒤에있는 3이라는 숫자는 해당 이미지가 컬러이미지라는것을 뜻함 gray sacle의 이미지는 1로 나온다.
Matplotlib 사용
이미지 나타내기
이미지 흑백으로 변경
path = 'images/dog.jpeg'
image_pil = Image.open(path).conver('L')
image_bw = np.array(image_pil)
image_bw.shape # (334, 500)
아까는 shape의 가장뒤에 3이 있었지만 convert('L')을 통해 뒤에 shape의 3이 사라진다.
이미지 색상 변경 cmap이용
다른 이미지와 합치기
# 두번째 이미지를 불러옴
cat_path = 'images/cat.jpeg'
cat_pil = Image.open(cat_path)
cat_image = np.array(cat_pil)
cat_image.shape # (334, 500, 3)
# 만약 두 사진의 크기가 다르다면 같게 설정해준다.
import cv2
dog_image = cv2.resize(image, (500, 334)) #shape을 반대로 넣어야하니 주의
dog_image.shape # (334, 500)
설정이 끝나면 이미지를 불러올 수 있다.
alpha(투명도)를 넣어주지않으면 cat_image가 dog_image를 덮어 cat_image만 나오게된다.
'Python > NumPy' 카테고리의 다른 글
NumPy - 시각화 기초(그래프) (0) | 2021.01.18 |
---|---|
NumPy - Math Function (0) | 2021.01.13 |
NumPy - Broadcast (0) | 2021.01.13 |
NumPy - Indexing, Slicing (0) | 2021.01.13 |
NumPy - shape 및 차원 변경 (0) | 2021.01.13 |