我寫了這段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「'是不同的?謝謝拉弗檢測出來! –