Я написал этот кусок кода на основе python, который загружает несколько изображений из репозитория изображений и сохраняет их в указанной папке. Код выглядит следующим образом:Загрузить изображения автоматически
import urllib.request
import cv2
import numpy as np
import os
def store_raw_images():
neg_images_link = 'http://image- net.org/api/text/imagenet.synset.geturls?wnid=n00464651'
neg_images_urls = urllib.request.urlopen(neg_images_link).read().decode()
if not os.path.exists('neg'):
os.makedirs('neg')
pic_num = 1
for i in neg_images_urls.split('\n'):
try:
print(i)
urllib.request.urlretrieve(i, "neg/{}.jpg".format(pic_num))
img = cv2.imread("neg/{}.jpg".format(pic_num) + cv2.IMREAD_GRAYSCALE)
resized_image = cv2.resize(img, (100, 100))
cv2.imwrite("neg/{}.jpg".format(pic_num), resized_image)
pic_num = pic_num + 1
print(pic_num)
except Exception as e:
print(str(e))
store_raw_images()
По какой-то причине изображения заменяются, и я НЕ вижу все изображения. Я продолжаю видеть одно изображение 1.jpg
, и все изображения, похоже, заменяются, хотя я ожидаю, что названия изображений пройдут 1.jpg
, 2.jpg
, ....
Я также вижу это предупреждение/ошибку, но я не уверен, имеет ли это отношение к этой проблеме или нет.
Can't convert 'int' object to str
http://www.azjeugd.nl/site/modules/xcgal/albums/20082009seizoen/a1/groningen_thuis/IMG_7798.jpg
HTTP Error 403: Forbidden
http://www.ga-eagles.nl/images/duels1e0809/gaetel6.jpg
С какой, по вашему мнению, проблеме?
Обратите внимание, что я приращение номера изображения:
pic_num = pic_num + 1
Что это за '+' здесь 'cv2.imread (" neg/{}. Jpg ".format (pic_num) + cv2.IMREAD_GRAYSCALE)'. Я не думаю, что это должно быть. –
Почему бы не изменить имена файлов, подобные этому? '" pic "+ str (pic_num) +". Jpg "' –
Я считаю, что проблема была только знаком «+». Будет ли, по-вашему, '' neg/{}. Jpg ".format (pic_num)" и "" neg/"+ str (pic_num) +" .jpg "' разные? Спасибо Rawing за обнаружение! –