はじめまして AI学習中なのですがうまくいかないところがあり、投稿しました。
環境:Windows10/64Bit+Anaconda2.2.0(TensorFlowあり)
やりたいこと:FlickrでDLした画像をつかって画像認識するまえに画像を前処理したい
事前準備:NumPyとPillowをpip
問題のコード:
from lib2to3.pytree import convert
from ntpath import join
from PIL import Image # 画像を扱うライブラリ「PILLOW」
import os, glob # ファイルを読み込むときに使用するライブラリ
import numpy as np # 学習用の配列を作るためのライブラリ
NumPyの警告が出るのでそれを無視する
np.warnings.filterwarnings('ignore',category=np.VisibleDeprecationWarning)
画像が保存されているディレクトリのパス
image_path = './images/'
files = os.listdir(image_path) # listdir関数:ファイルやパスを操作するOSモジュールの中の一つ
imagesディレクトリ以下のディレクトリ名の一覧をリストに格納
dirs = []
for f in files:
if os.path.isdir(os.path.join(image_path,f)):
dirs.append(f)
画像が保存されているディレクトリ名を[XXX,…,XXX]という形式で表示
print(dirs)
ダウンロードした画像をそのまま扱うのは効率がよくないので一旦画像を小さくして学習することにする
image_size = 50 # この大きさにリサイズ
num_images = 200 # 学習する画像数
num_testdata = 50 # 学習した結果、その精度をチェックするための画像数
学習用画像とテスト画像を保存する配列を宣言
X_train = []
X_test = []
Y_train = []
Y_test = []
ディレクトリでループして画像を読み込む
for index,label in enumerate(dirs):
photos_dir = image_path + '/' + label
# そのディレクトリ内のjpgファイルを全部読み込む
photos = glob.glob(photos_dir + '/*.jpg')
for i, p in enumerate(photos_dir):
if i >= num_images:
break
image = Image.open(p) <<< ここでエラーが出ます
image = Image.convert('RGB')
image = Image.resize((image_size,image_size))
data = np.asarray(image)
if i < num_testdata: X_test.append(data) Y_test.append(index) else: for angle in range(-20,21,5): # 5度ずつ-20度から20度まで回転した画像を生成 r_image = image.rotate(angle) data = np.asarray(r_image) X_test.append(data) Y_test.append(index) # 左右反転した画像を生成 t_image = r_image.transpose(Image.FLIP_LEFT_RIGHT) data = np.asarray(t_image) X_test.append(data) Y_test.append(index)
エラーの内容:
Traceback (most recent call last):
File "C:\Users\user\AI\load_image.py", line 42, in <module>
image = Image.open(p)
File "C:\Users\user\anaconda3\envs\tensor-\lib\site-packages\PIL\Image.py", line 3068, in open
fp = builtins.open(filename, "rb")
PermissionError: [Errno 13] Permission denied: '.'
いろいろ試しているのですが解決できません。どうやって攻めていったらよいでしょうか?ヒント頂きたくよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー