공부/코딩깔짝

cv2 이용하여 이미지 편집하여 저장하기

뼈있는치킨 2023. 11. 12. 09:05
728x90
반응형

 

같은 크기의 이미지 파일들이 여러 개 있는데, 얘네들을 적당히 crop할 필요가 생겼다.

(이미지 바깥에 쓸모없는 부분을 잘라내주고 싶다.)

 

crop은 이미지에서 일부 픽셀들만 가져오는 것.

파이썬 cv2에서는 특별히 함수를 쓰지 않고 슬라이싱을 통해 가능하다.

 

opencv crop 링크

https://learnopencv.com/cropping-an-image-using-opencv/

 

코랩 환경에서 cv2를 사용하여 처리할거고, 다음과 같은 순서로 처리.

1. 편집할 이미지들 구글 드라이브에 업로드.

2. 파이썬에서 파일 리스트 가져와서 이미지인지 체크

3. 각 이미지 crop하여 수정 후, 다른 폴더에 저장.

 

import cv2
from google.colab.patches import cv2_imshow
import os

# 구글 드라이브 마운트하고, 원하는 패스로 이동
# os.chdir('/drive/MyDrive/Colab Notebooks')

# 이미지 하나 그려보기
# img = cv2.imread('test.png')
# cv2_imshow(img)

# 현재 path에 있는 파일들 출력
path = "./"
file_list = os.listdir(path)
print ("file_list: {}".format(file_list))

# 현재 path에 있는 이미지들(png 파일들) 다 crop하여 편집하여 저장하기
num = 0
for img_path in file_list:
  if ".png" in img_path:
  	# 이미지 읽기
    img = cv2.imread( img_path )
    
    # 슬라이싱을 이용하여 crop !!!
    crop_img = img[70:, 20:-20, :]
    
    # 이미지 파일 쓰기
    cv2.imwrite('crop_images/'+img_path, crop_img)
    
    num = num+1

# 편집한 이미지 개수 출력하고 끝
print(num)

 

이미지 95장, 크기 1537 X 1222, 약 270MB
각 이미지 crop하여 1497 X 1152로 수정
2분 5초 소요하고 편집 완료

728x90
반응형