关于Spyder报错‘NoneType‘ object has no attribute ‘shape‘解决

这篇具有很好参考价值的文章主要介绍了关于Spyder报错‘NoneType‘ object has no attribute ‘shape‘解决。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述

运行疲劳检测代码,Spyder关于AttributeError: 'NoneType' object has no attribute 'shape'问题,上网找了很多很多解法,结果都没成功解决。绞尽脑汁都没想出来
后面看到有个博主说其实是那个语句说是,没读到图像导致返回值是空,导致无法运行。然后我就想到是那必定是图像没被读进去,应该是摄像头出了问题。
因为我是在虚拟机中用的usb摄像头,程序有时可以运行有时不可以。然后我就去弄摄像头了
报错原因:调用的对象没有‘shape’属性,也就是没有读取到图片,参考文章:AttributeError: ‘NoneType‘ object has no attribute ‘shape
所以另外写了个代码测试自己的摄像头是否能正确运行,大家也可以用这个代码看下,是不是摄像头没读进去的问题,如果你能正确开启摄像头,那么这个问题应该也能解决。

代码如下:

import cv2
#打开本地摄像头
cap = cv2.VideoCapture(0) 
while(cap.isOpened()):
    ret, frame = cap.read()
    if frame is None:
    	print("Cannot read")
        break
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    cv2.imshow('frame',gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()

然后我参考的疲劳检测代码是这个博主的文章:Dlib模型之驾驶员疲劳检测一和Dlib模型之驾驶员疲劳检测二
里面的注意事项:
1.关于她代码中的这行语句

predictor = dlib.shape_predictor('D:/myworkspace/JupyterNotebook/fatigue_detecting/model/shape_predictor_68_face_landmarks.dat')

存储路径是要写你自己下载的那个.dat文件的存储路径,不能直接用她的,路径最好不要含有中文。
2. 运行出现我说得那个问题:AttributeError: 'NoneType' object has no attribute 'shape',请看自己摄像头能不能运行。或者路径含有中文(不过路径有中文这个我不确定能不能解决)
3. 另外我在运行还有个bug,明明一个程序可以运行,但是另个就不行了。解决方法:让虚拟机也连接到电脑自带的摄像头,这样自己用的usb摄像头也就可以使用了。
4. 第二篇文章中评论区有人说是她图里坐标有误,但是我用了正确的坐标反而测不准,所以我还是用的是图中自带的坐标文章来源地址https://www.toymoban.com/news/detail-477635.html

到了这里,关于关于Spyder报错‘NoneType‘ object has no attribute ‘shape‘解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包