обновить изображение в каталоге с изображениями того же каталога - PullRequest
1 голос
/ 03 мая 2020

У меня есть каталог с набором изображений разных размеров, позвольте мне показать вам изображения и их размеры

from google.colab import drive
drive.mount('/content/drive')
from PIL import Image
import glob
import time
from pylab import *
for filename in glob.iglob('/content/drive/My Drive/Colab Notebooks/Cats/*.jpg'):
  print(filename)

Результаты этого кода:

/content/drive/My Drive/Colab Notebooks/Cats/cat1.jpg
/content/drive/My Drive/Colab Notebooks/Cats/cat2.jpg
/content/drive/My Drive/Colab Notebooks/Cats/cat3.jpg
/content/drive/My Drive/Colab Notebooks/Cats/cat4.jpg
/content/drive/My Drive/Colab Notebooks/Cats/cat5.jpg
/content/drive/My Drive/Colab Notebooks/Cats/cat6.jpg
/content/drive/My Drive/Colab Notebooks/Cats/cat7.jpg

сейчас пусть мы считаем их размеры

from PIL import Image
import glob
import time
from pylab import *
for filename in glob.iglob('/content/drive/My Drive/Colab Notebooks/Cats/*.jpg'):
  im=array(Image.open(filename))
  print(im.shape)

результат этого кода:

(410, 618, 3)
(1200, 1800, 3)
(576, 1024, 3)
(1533, 2300, 3)
(400, 600, 3)
(264, 191, 3)
(194, 259, 3)

конечно, я могу преобразовать его в оттенки серого, используя следующую строку

im=array(Image.open(filename).convert('L'))

результат :

(410, 618)
(1200, 1800)
(576, 1024)
(1533, 2300)
(400, 600)
(264, 191)
(194, 259)

поскольку вы видите, что разные изображения имеют разный размер, я хочу изменить форму всех изображений с одинаковым размером (для этого я знаю функцию изменения размера), и я хочу обновить (заменить) старую изображение с таким же изображением, поэтому у меня все изображения в моем каталоге должны быть одинакового размера, как я могу это сделать? пожалуйста, помогите мне

1 Ответ

0 голосов
/ 03 мая 2020

Решение было намного проще, тогда я думал об этом, вот мое решение

from google.colab import drive
drive.mount('/content/drive')
from PIL import Image
import glob
import time
from pylab import *
#directory_name ='/content/drive/My Drive/Colab Notebooks/Cats/'
for filename in glob.iglob('/content/drive/My Drive/Colab Notebooks/Cats/*.jpg'):
  #print(filename[-8:])
  im=(Image.open(filename).convert('L'))
  im=im.resize((100,100))
  #filename=filename[-8:]
  #complete_name =directory_name+filename
  print(complete_name)
  im.save(filename)

тест:

for filename in glob.iglob('/content/drive/My Drive/Colab Notebooks/Cats/*.jpg'):
   im=array((Image.open(filename).convert('L')))
   print(im.shape)

результат:

(100, 100)
(100, 100)
(100, 100)
(100, 100)
(100, 100)
(100, 100)
(100, 100)
...