cv2.error: (-215:Assertion failed) !ssize.empty() in function ‘resize‘解决方案

在做手势图像分类的时候,遇到了数据集不均衡的问题。于是对部分图像少的类别进行了数据集扩充。
具体如何扩充的参考了这位博主的方法:
数据集太少怎么办?数据集扩充方法

后续继续对数据集进行训练的时候就遇到了如题目所示的问题:cv2.error: (-215:Assertion failed) !ssize.empty() in function ‘resize‘

第一次遇到这种问题确实不太懂为什么,我也检查了我的路径、文件,发现都没有问题,全程没有出现中文路径或者中文命名。
应该是哪张图片出现了问题,但我的训练集有两万多张图片,要怎么去找有问题的图片也是蛮困难的。

最后我的解决办法:

import os
import cv2

filpath='F:/A_DG_Static/v_3/validv_3'
image_list = os.listdir(filpath)  # 读取文件夹中所有的图片
print(image_list)
i=0
for picname in image_list:
    i += 1
    img = cv2.imread((filpath + '/' + picname), 0)
    try:
        img = cv2.resize(img, (64, 64))
        print(i, picname) #打印当前成功处理的图片数量图片名称
    except :
        print(picname) #打印出有问题的图片名
        break

最后打印出那张图片的名字就是有问题的图片了。

参考了这位博主的办法:
error: (-215:Assertion failed) !ssize.empty() in function 'cv::resize’报错的原因

最后成功找到了有问题的两张图片,把图片删除后就能成功训练了。
虽然也不是我自己想的办法,但也还是记录一下,希望能帮到大家。

你可能感兴趣的:(python,opencv)