私は画像のリポジトリからいくつかの画像をダウンロードして指定のフォルダに保存するこの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
、2.jpg
、...になるとは思いますが、私は1つの画像1.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ありがとう! –