본문 바로가기

python

[Google Colab] 파일 덮어쓰기/ 파일을 저장할 때, 같은 이름이 있으면?

덮어쓰기

실험 이유

프로젝트를 진행하다가 이미지 데이터를 변형하여 쓰려고, 변형된 이미지를 구글 드라이브에 저장해서 사용하고자 했다.

이미 10,000장이 넘는 이미지가 저장되고 있었는데, 변형을 잘못하고 있다는 것을 깨달았다! 그래서 새로 고치고 다시 돌렸는데 이미 지정된 이미지가 덮어 쓰여지는 걸까 궁금했다.

만약 덮어쓰여진다면, 바로 run하면 된다. 그게 아니라면 구글 드라이브에서 해당 디렉토리를 지금까지 저장된 파일을 지우고 새로 만들어서 다시 run해야 한다. 

 

실험

1. colab과 google drive 연동

from google.colab import drive
drive.mount('/content/drive')

 

2. 라이브러리

import cv2
from google.colab.patches import cv2_imshow

※colab에서는 cv2.imshow 대신 cv2_imshow를 써야한다.※

 

3. 이미지 불러오기

image_path = "/content/drive/MyDrive/lab_image.jpg"
image = cv2.imread(image_path)
cv2_imshow(image)

이미지 크기가 너무 커서 보기 편하게 resize를 해줬다.

이미지 불러오기 결과

 

4. 이미지 변형 및 쓰기

hsy_img = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
cv2_imshow(hsy_img)

save_path = "/content/drive/MyDrive/"
cv2.imwrite(save_path + 'save_image.jpg', hsy_img)

확장자 .jpg를 써줘야 한다. 안썼어서 오류가 떴었음.

이미지 변형1 결과

 

5. 다르게 변형하고 같은 이름으로 저장하기

gray_img = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2_imshow(gray_img)

save_path = "/content/drive/MyDrive/"
cv2.imwrite(save_path +'save_image.jpg', gray_img)

이미지 변형2 결과

 

6. 저장된 이미지 확인하기

save_image = cv2.imread("/content/drive/MyDrive/save_image.jpg")
cv2_imshow(save_image)

저장된 이미지 결과

 

실험 결과

덮어쓰기가 된다.

그러나 이미 저장한 이미지가 많으면, 덮어쓰기를 하느라 조금 느려지는 거 같다. 따라서 덮어쓰기할 이미지가 별로 없으면 디렉토리를 비울 필요없이 바로 쓰고, 덮어쓰기할 이미지가 많으면 디렉토리를 비우고 다시 쓰는 것이 유리할 것으로 판단된다.