我想通过目录中的不同图像文件。我使用Jupyter来运行我的Python代码。但是我不断收到这个错误。以下是我的代码和我收到的错误。在目录中读取JPG文件?
CODE:
import os
import os.path
for img in os.listdir('test_images'):
if img.endswith("jpg"):
scriptpath = os.path.dirname(img)
print(os.path.join('test_images', img))
# Read in the image
image = os.path.join(scriptpath, img)
image = mpimg.imread(image)
# Grab the x and y size and make a copy of the image
ysize = image.shape[0]
xsize = image.shape[1]
color_select = np.copy(image)
# Define color selection criteria
red_threshold = 200
green_threshold = 200
blue_threshold = 200
rgb_threshold = [red_threshold, green_threshold, blue_threshold]
# Do a boolean or with the "|" character to identify
# pixels below the thresholds
thresholds = (image[:,:,0] < rgb_threshold[0]) \
| (image[:,:,1] < rgb_threshold[1]) \
| (image[:,:,2] < rgb_threshold[2])
color_select[thresholds] = [red_threshold,green_threshold,blue_threshold]
plt.imshow(color_select)
# Display the image
plt.imshow(color_select)
continue
else:
continue
OUTPUT:
test_images/solidWhiteCurve.jpg
错误:
FileNotFoundError Traceback (most recent call last)
<ipython-input-3-6edf7c0860b7> in <module>()
7 # Read in the image
8 image = os.path.join(scriptpath, img)
----> 9 image = mpimg.imread(image)
10 # Grab the x and y size and make a copy of the image
11 ysize = image.shape[0]
/Users/steveburgos/anaconda/envs/carnd-term1/lib/python3.5/site-packages/matplotlib/image.py in imread(fname, format)
1225
1226 if ext not in handlers:
-> 1227 im = pilread(fname)
1228 if im is None:
1229 raise ValueError('Only know how to handle extensions: %s; '
/Users/steveburgos/anaconda/envs/carnd-term1/lib/python3.5/site-packages/matplotlib/image.py in pilread(fname)
1203 except ImportError:
1204 return None
-> 1205 with Image.open(fname) as image:
1206 return pil_to_array(image)
1207
/Users/steveburgos/anaconda/envs/carnd-term1/lib/python3.5/site-packages/PIL/Image.py in open(fp, mode)
2310
2311 if filename:
-> 2312 fp = builtins.open(filename, "rb")
2313
2314 try:
FileNotFoundError: [Errno 2] No such file or directory: 'solidWhiteCurve.jpg'
'scriptpath'将始终为空字符串,因为'os.listdir'返回裸文件名。尝试打印'os.path.join(scriptpath,img)'(您打开的路径)而不是'os.path.join('test_images',img)'。 – unutbu
@unutbu你真棒!这工作完美!非常感谢! –
我建议使用['glob.glob'](https://docs.python.org/3/library/glob.html#glob.glob)并以'* .jpg'结尾的_pathname_参数。 – martineau