今回、自分のメモ用に記載しています。
もし、参考になるのであれば皆さんも使用してみてください。
今回使用するソースコードは、「TomoProgの技術書」と「Python, Pillowを使って画像を一括でリサイズ(拡大・縮小)する方法」を参考にさせていただきました。
より詳しい解説は、上記Webページに記載してありますのでご確認ください。
では、私が使用した環境と使用した感想を記載していきます。
#開発環境
windows7
python 3.5
pycharm
#画像取得のソースコード
import urllib.request
import bs4
# 取得したいwebページのURL
url = "https://www.google.co.jp/"
request = urllib.request.urlopen(url)
html = request.read()
# 文字コードのリストを作成
encoding_list = ["cp932", "utf-8", "utf_8", "euc_jp",
"euc_jis_2004", "euc_jisx0213", "shift_jis",
"shift_jis_2004", "shift_jisx0213", "iso2022jp",
"iso2022_jp_1", "iso2022_jp_2", "iso2022_jp_3",
"iso2022_jp_ext", "latin_1", "ascii"]
for enc in encoding_list:
try:
html.decode(enc)
break
except:
enc = None
resources = []
# BeautifulSoupオブジェクトを作成
soup = bs4.BeautifulSoup(html)
# htmlのすべてのimgタグの中のsrc属性の内容を取得
for img_tag in soup.find_all("img"):
src_str = img_tag.get("src")
resources.append(src_str)
# srcの内容を表示
array_jpg = []
for resource in resources:
array_jpg.append(resource)
# 画像ファイルのURLを開く
# (urlに画像ファイルのURLを指定)
count = 0
for number in range(0, len(array_jpg)):
request = urllib.request.urlopen(array_jpg[number])
# ファイルをバイナリモードで開き、URLの内容を書き込み
# ファイル名は連番(例:0.jpg/1.jpg/......)
f = open("%d.jpg" % (count), "wb")
f.write(request.read())
# ファイルを閉じる
f.close()
count += 1
#画像リサイズのソースコード
#coding:utf-8
from PIL import Image
import os
input_path = "C:\\Users\\画像"
output_path = "C:\\Users\\画像_480x300"
# 画像フォルダの中のファイル名取得
list_input_path = os.listdir(input_path)
for number in range(0, len(list_input_path)):
# 画像ファイルを開く
img = Image.open(input_path + "/" + list_input_path[number], 'r')
# img.resize((480, 300), Image.LANCZOS)は、リサイズするサイズの設定、フィルタの設定
img_resize_lanczos = img.resize((480, 300), Image.LANCZOS)
img_resize_lanczos = img_resize_lanczos.convert("RGB")
# リサイズした画像の保存
img_resize_lanczos.save(output_path + "/" + list_input_path[number], quality = 100)
使用してみての感想
上記webサイトでは、解説が丁寧に書かれており重複で調べることなどは無かったです。
とても良くまとめられているサイトでした。
皆さんも、機械学習をやってみたいと思ったときに、何かしらのデータが必要になると思います。
そんな時、こういった知識があれば、すぐデータが集められ、機械学習に取り掛かる事ができます。
私もこのソースコードを使って多くの画像を集めましたので、機械学習に利用していきたいと思います。
画像の著作権等は気をつけてくださいね。