Doris- 发表于 2020-4-15 21:35:47

python代码读取图片错误求解

代码提示错误:

File "D:/tempproject/PycharmProjects/PCA.py", line 46, in img2vector
    rows, cols = img.shape()
AttributeError: 'NoneType' object has no attribute 'shape'

错误位置:

def img2vector(filename):
    img = cv2.imread(filename, 0)# 读入灰度值
    rows, cols = img.shape
    imgVector = zeros((1, rows * cols))
    imgVector = reshape(img, (1, rows * cols))# 将2维转成1维
    return imgVector

求大神帮助

qiuyouzhi 发表于 2020-4-15 21:37:48

cv2.imread你确定有返回值?

zltzlt 发表于 2020-4-15 21:38:15

文件(filename)不存在,检查一下你的路径有没有拼错,或者文件是不是真的存在

Doris- 发表于 2020-4-15 21:41:34

qiuyouzhi 发表于 2020-4-15 21:37
cv2.imread你确定有返回值?

是有返回值吧

Doris- 发表于 2020-4-15 21:44:02

zltzlt 发表于 2020-4-15 21:38
文件(filename)不存在,检查一下你的路径有没有拼错,或者文件是不是真的存在

def loadDataSet(k):# k代表在10张图片中选择几张作为训练集
    dataSetDir = r'D:\tempproject\FaceDB_orl'
    # 显示文件夹内容
    choose = random.permutation(10) + 1# 随机排序1-10 (0-9)+1
    train_face = zeros((40 * k, 112 * 92))
    train_face_number = zeros(40 * k)
    test_face = zeros((40 * (10 - k), 112 * 92))
    test_face_number = zeros(40 * (10 - k))
    for i in range(40):# 40个人
      people_num = i + 1
      for j in range(10):# 每个人有10个不同的脸
            if j < k:# 测试集
                filename = dataSetDir + '/s' + str(people_num) + '/' + str(choose) + '.png'
                img = img2vector(filename)
                train_face = img
                train_face_number = people_num
            else:
                filename = dataSetDir + '/s' + str(people_num) + '/' + str(choose) + '.png'
                img = img2vector(filename)
                test_face = img
                test_face_number = people_num
    return train_face, train_face_number, test_face, test_face_number


# 将图片转换成矩阵
def img2vector(filename):
    img = cv2.imread(filename, 0)# 读入灰度值
    rows, cols = img.shape
    imgVector = zeros((1, rows * cols))
    imgVector = reshape(img, (1, rows * cols))# 将2维转成1维
    return imgVector

这个是文件路径:D:\tempproject\FaceDB_orl\s1   每个s*文件夹下面有10张图

zltzlt 发表于 2020-4-15 21:44:29

Doris- 发表于 2020-4-15 21:44
def loadDataSet(k):# k代表在10张图片中选择几张作为训练集
    dataSetDir = r'D:\tempproject\Face ...

你的完整代码就这些吗?

Doris- 发表于 2020-4-15 21:44:56

zltzlt 发表于 2020-4-15 21:44
你的完整代码就这些吗?

错误的地方是这里

Doris- 发表于 2020-4-15 21:47:49

zltzlt 发表于 2020-4-15 21:44
你的完整代码就这些吗?

我自己解决了感谢大神{:5_109:}

Doris- 发表于 2020-4-15 21:48:44

zltzlt 发表于 2020-4-15 21:38
文件(filename)不存在,检查一下你的路径有没有拼错,或者文件是不是真的存在

我自己解决了感谢大神{:5_109:}

zltzlt 发表于 2020-4-15 21:51:18

Doris- 发表于 2020-4-15 21:48
我自己解决了感谢大神

如果你的问题已解决,请设置【最佳答案】。
页: [1]
查看完整版本: python代码读取图片错误求解