如何解决为什么python抛出错误:AttributeError:'numpy.ndarray'对象没有属性'append'?
我正在尝试运行以下代码,但是python抛出错误:numpy对于表示“ ids.append(id)”的行没有参数'append'
path = [os.path.join("data",f) for f in os.listdir("data")]
faces = []
ids = []
for image in path :
img = Image.open(image).convert('L')
nimg = np.array(img,'uint8')
id = int(os.path.split(image)[1].split(".")[1])
faces.append(nimg)
ids.append(id)
ids = np.array(ids)
clf = cv2.face.EigenFaceRecognizer_create()
clf.train(faces,ids)
clf.write("classifier.yml")
解决方法
您是在第一次迭代后将id转换为数组。运行它时,阵列中应仅保留一项。我将ids = np.array(ids)
行移到for循环之外。见下文:
path = [os.path.join("data",f) for f in os.listdir("data")]
faces = []
ids = []
for image in path :
img = Image.open(image).convert('L')
nimg = np.array(img,'uint8')
id = int(os.path.split(image)[1].split(".")[1])
faces.append(nimg)
ids.append(id)
ids = np.array(ids)
clf = cv2.face.EigenFaceRecognizer_create()
clf.train(faces,ids)
clf.write("classifier.yml")
如果要真正使它成为一个数组,则必须使用以下样式化的代码,但列表也应一直到最后。
ids = np.array(ids)
ids = np.append(ids,[id])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。