I've my ipynb and a folder named PRimage (with 100+ images) in my google drive and my drive is already mounted at /content/drive. My images are arranged in sequence eg. 1_1.jpg, 1_2.jpg and so on. I'm trying to use a for loop to resize all images, like this:
from google.colab import drive
drive.mount('/content/drive')
from os import listdir
from matplotlib import image
from PIL import Image
loaded_images = list()
for filename in listdir('/content/drive/My Drive/PRimage'):
img_data = image.imread('/content/drive/My Drive/PRimage/'+ filename)
loaded_images.append(img_data)
print('> loaded %s %s' % (filename, img_data.shape))
def resize():
files = listdir('/content/drive/My Drive/PRimage')
for item in files:
image = Image.open(item)
image.thumbnail((64,64))
print(image.size)
resize()
However, I get this error message:
Insert a new code cell and use pwd
to check your present working directory. Make sure it is at /content/drive/My Drive/PRimage
. Use cd /content/drive/My\ Drive/PRimage
to change dirs. Your FileNotFoundError
is the cause of your unknown pwd. Always look for your root working dirs in such cases. Your code executes from pwd and expects the similar dir structure within it.
def resize_image(src_img, size=(64,64), bg_color="white"):
from PIL import Image
# rescale the image so the longest edge is the right size
src_img.thumbnail(size, Image.ANTIALIAS)
# Create a new image of the right shape
new_image = Image.new("RGB", size, bg_color)
# Paste the rescaled image onto the new centered background
new_image.paste(src_img, (int((size[0] - src_img.size[0]) / 2), int((size[1] - src_img.size[1]) / 2)))
# return the resized image
return new_image
# get the list of test image files
test_folder = '/content/drive/My Drive/PRimage'
test_image_files = os.listdir(test_folder)
# Empty array on which to store the images
image_arrays = []
size = (64,64)
background_color="white"
# Get the images
for file_idx in range(len(test_image_files)):
img = Image.open(os.path.join(test_folder, test_image_files[file_idx]))
# resize the image
resized_img = np.array(resize_image(img, size, background_color))
# Add the image to the array of images
image_arrays.append(resized_img)