Tso*_*Phu 3 python opencv keras
我试图将Keras的图像分类器应用于我的项目,但是后来我陷入了困境。虽然以前使用相同的代码,但我可以使用OpenCV读取和训练图像,但是在切换到新的一批图像后,它就陷入了错误。所以我推测我的文件类型有问题:
这是从出现错误的批次中得出的:
traf.204.jpg:JPEG图像数据,JFIF标准1.01,宽高比,密度1x1,片段长度16,基线,精度8、480x294,帧1
这是来自未捕获错误的批处理:
bear.290.jpg:JPEG图像数据,JFIF标准1.01,宽高比,密度1x1,片段长度16,基线,精度8、224x224,帧3
但是文件类型似乎完全相同(分辨率除外)。请帮助我解决这个问题,我仍然是python上的opencv和keras的新手。
She*_*zod 10
另一种可能性:图像的widthor可能为零:height
print(image.shape())
# (300, 0) -> Incorrect!
# (0, 400) -> Incorrect!
# (300, 400) -> Correct!
# (400, 300) -> Correct!
Run Code Online (Sandbox Code Playgroud)
当您在应用某些图像处理技术(例如使用 OpenCV)后尝试调整图像大小时,可能会发生这种情况,并且图像的高度或宽度可能会变为 0。
谢谢大家,我弄清楚了,我应该添加一个try / exception,以便我的代码可以绕过“丑陋”的图像:
try:
path=os.path.join(mypath,n)
img=cv2.imread(path, cv2.IMREAD_GRAYSCALE)
img=cv2.resize(img, (img_rows,img_cols))
except Exception as e:
print(str(e))
Run Code Online (Sandbox Code Playgroud)
cv2.resize()是应该捕获错误的位置,因为它无法调整“损坏”的图像的大小。