article thumbnail image
Published 2021. 1. 31. 16:59

package 불러오기

import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
%matplotlib inline

이미지 파일 열기

opencv로도 열수 있지만, shape 순서가 바뀔 때도 있어서 PIL로 여는 것을 개인적으로 선호

path = 'source/dog.jpg'
image_pil = Image.open(path)
image = np.array(image_pil)

이미지 들여다 보기

image.shape #(세로길이, 가로길이, 색깔이 있으므로 3차원)

 

(734, 1100, 3)

 

 

np.min(image), np.max(image)

 

(0, 255)

 

이미지를 열기 전에 shape 및 min, max를 통해서 이미지의 range 확인 필요


그래프로 시각화 하기

plt.hist(image.ravel(),256, [0,256])plt.show()


그림 나타내기

plt.imshow(image)plt.show()


이미지 흑백으로 열기

image_pil = Image.open(path).convert("L")
image_black = np.array(image_pil)
image_black.shape # 흑백으로 변했기 때문에 앞에서 나왔던 3이 없다.

 

(734, 1100)


흑백 이미지 열기

# 2개의 차원일 때는 gray scale로 열림
plt.imshow(image_black)
plt.show()

 


다른 색상으로 cmap 표현하기

gray scale

 

plt.imshow(image_black, 'gray')
plt.show()


RdBu

plt.imshow(image_black,'RdBu')

 


jet

plt.imshow(image_black, 'jet')

 


Colorbar 추가하기

plt.imshow(image_black, 'jet')
plt.colorbar()
plt.show()


이미지 설정

이미지 보기 사이즈 조절

 

plt.figure(figsize=(10,10))
plt.imshow(image)
plt.show()


이미지에 제목 추가

plt.title('Dog')
plt.imshow(image)
plt.show()


두번째 이미지 열기

cat_path = 'source/cat.jpg'​
cat_pil = Image.open(cat_path)
cat_image = np.array(cat_pil)
plt.imshow(cat_image)
plt.show()


두번째 이미지를 첫번째 이미지 모양에 맞추기

cat_image.shape

 

(183, 275, 3)

 

image.shape, cat_image.shape # 강아지와 고양이 이미지 차이

 

((734, 1100, 3), (183, 275, 3))


두번째 이미지 합치기 위한 준비

import cv2

dog_image = cv2.resize(image,(275,183))
dog_image.shape

 

(183, 275, 3)

dog_image.shape, cat_image.shape

 

((183, 275, 3), (183, 275, 3))


Image 합치기

plt.imshow(dog_image)
plt.imshow(cat_image, alpha=0.5)
plt.show()

 


Subplot

plt.figure(figsize=(10,10))
plt.subplot(221) # == plt.subplot(2,2,1)
plt.imshow(dog_image)
plt.subplot(222)
plt.imshow(image_black, 'gray')
plt.subplot(223)
plt.imshow(cat_image)
​plt.show()

'📌 Python' 카테고리의 다른 글

Python - 메모리 구조 및 메모리 할당 과정  (0) 2022.01.24
Mac - Conda가 안될 때, anaconda 터미널이 안켜질 때  (1) 2021.06.16
Python - 시각화 기초  (0) 2021.01.27
Python - Numpy 기초  (0) 2021.01.27
Python - Tensor  (0) 2021.01.27
복사했습니다!