You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 09:25:34