728x90
1. 이미지 불러오기 (png파일)
# !pip install opencv-python==4.5.5.64
import cv2
from matplotlib import pyplot as plt
img = cv2.imread("./data/cat.png") # cv2 라이브러리의 imread() 함수로 불러옴
# 색상의 문제 발생 -> BGR -> RGB
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img)
plt.show()

2. 이미지 저장하기(.npy)
넘파이를 이용하여 배열로 저장하기
.npy 파일로 저장하는 방법
import numpy as np
np.save("./data/image.npy", img) # 현재위치에 있는 data 폴더에 image.npy로 이미지만들기
# 만약에 해당폴더가 없으면 폴더생성하는 파이썬 코드
import os
def createDirectory(directory):
try:
if not os.path.exists(directory):
os.makedirs(directory)
except OSError:
print("Error: Failed to create the directory.")
2-1. 이미지 저장하기(PIL)
PIL은 간단한 이미지 처리와 변환 작업에 사용하기 좋음 / 컴퓨터 비전 작업에서는 OpenCV를 쓰는게 맞음
#!pip install Pillow
import numpy as np
from PIL import Image
# 이미지 불러오기
img = Image.open("./data/cat.png").convert('L') # 그레이 스케일 변환
print(img)
img_array = np.array(img)
np.save("./data/pil_image.npy", img_array) # .npy로 저장
img_array1 = np.load("./data/pil_image.npy") # .npy 불러오기
# 다시 PIL 이미지로 변환
img = Image.fromarray(np.uint8(img_array1)) # pil의 Image라이브러리 fromarray()로 변환
img.save("./data/image_numpy.png") # pil로 png로 변환
org_size = os.path.getsize("./data/cat.png")
np_save_size = os.path.getsize("./data/pil_image.npy")
pil_save_size = os.path.getsize("./data/image_numpy.png")
# 용량차이 확인하기
print(org_size, "bytes")
print(np_save_size, "bytes")
print(pil_save_size, "bytes")
# 원본 : 6468 bytes
# .npy로 저장 : 50348 bytes
# PIL를 활용하여 png로 저장 26808 bytes
3. 이미지 불러오기 (.npy)
img_data = np.load("./data/image.npy") # 넘파이의 load()로 불러옴
plt.imshow(img_data)
plt.show()

728x90
'ComputerVision > [CV]' 카테고리의 다른 글
[CV] 이미지 기본세팅 3 (블러, 선명도, 대비) (2) | 2023.06.08 |
---|---|
[CV] 이미지 기본세팅 2 (리사이징, 크롭) (0) | 2023.06.08 |
[CV] SAM - Segment Anything Model by META (0) | 2023.04.06 |
[CV] Pytorch VS tensorflow(keras) 점유율 비교 (0) | 2023.04.03 |
[CV] Computer Vision 관련 유용한 링크들 (0) | 2023.03.16 |