如何解决AttributeError: 'tuple'对象没有'setInput'属性问题?
问题解决:AttributeError: 'tuple' object has no attribute 'setInput'
错误根源是初始化net时的语法错误:你把readNetFromCaffe的两个参数用逗号和额外括号分开,导致net被赋值为一个元组,而非OpenCV的DNN网络对象。元组自然没有setInput方法,所以触发报错。
修正后的代码:
import numpy as np import cv2 #加载图片 img=cv2.imread(r"E:\Face recognition\3_FaceDetection_FeatureExtraction\images\faces.jpg") cv2.imshow('faces',img) cv2.waitKey(0) cv2.destroyAllWindows() print(img) # 修正:将两个路径放在同一个readNetFromCaffe调用的括号内 net = cv2.dnn.readNetFromCaffe( "E:/Face recognition/Models/deploy.prototxt.txt", "E:/Face recognition/Models/res10_300x300_ssd_iter_140000_fp16.caffemodel" ) #提取blob blob = cv2.dnn.blobFromImage(img, 1, (300,300), (104,177,123), swapRB=False) net.setInput(blob)
关键修正点:
把原来的:
net = cv2.dnn.readNetFromCaffe("E:/Face recognition/Models/deploy.prototxt.txt"),("E:/Face recognition/Models/res10_300x300_ssd_iter_140000_fp16.caffemodel")
改为:
net = cv2.dnn.readNetFromCaffe("E:/Face recognition/Models/deploy.prototxt.txt", "E:/Face recognition/Models/res10_300x300_ssd_iter_140000_fp16.caffemodel")
这样net会被正确赋值为cv2.dnn.Net对象,就能正常调用setInput方法了。
内容的提问来源于stack exchange,提问作者Wafa Yasir Laghari
相关产品推荐
相关产品推荐

