我写了这段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“'是不同的?谢谢拉弗检测出来! –