在Opencv中接收到错误:(-215:Assertion failed) !_src.empty() 在函数’cvtColor’中

我目前正在使用opencv来识别屏幕上的个体,并且我已经创建了一个模型,但我在接收到这个错误:

error: OpenCV(4.1.2) /io/opencv/modules/imgproc/src/color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cvtColor'

我已经在众多论坛中搜索试图找到解决方案,但没有一个真正有帮助。以下是代码的一部分。

#创建视频捕捉
camera = cv2.VideoCapture(0, cv2.CAP_DSHOW)
camera.set(3, 650)  # 设置摄像头宽度
camera.set(4, 480)  # 设置摄像头高度
# 创建人脸窗口大小
minW = 0.1 * camera.get(3)
minH = 0.1 * camera.get(4)
face_module = cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_frontalface_default.xml")
eye_module = cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_eye.xml")
recogniser = cv2.face.LBPHFaceRecognizer_create()  # 这将读取LBPH方法
recogniser.read("/content/trainner/trainner.yml")  # 这将读取YML文件
def getStudent(ID):
    connection = sqlite3.connect("FaceBase.db")
    cmd = "SELECT * FROM Class WHERE ID=" + str(ID)
    cursor = connection.execute(cmd)
    student=None
    for row in cursor:
        student=row
    connection.close()
    return student
df = pd.read_csv("attendance.csv")
columnNames = ["ID", "全名", "专业", "时间"]
attendance = pd.DataFrame(columns=columnNames)
# 这是检测逻辑发生的地方
while (True):
    ret, frame = camera.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    face = face_module.detectMultiScale(gray, 1.5, 5)

回答:

在上面的代码中存在两个问题,其中一个是:

recogniser.read("/content/trainner/trainner.yml")

这带来了关于trainner文件路径的错误,要解决这个问题,你需要使用文件的绝对路径,所以应该是这样。

recogniser.read(r"/Users/...../Documents/....../trainner/trainner.yml") 

要解决cv2Colour问题,你需要在摄像头读取代码的正下方添加以下代码

    if ret is True:
        #print("frame.shape")
        else:
         continue

希望这能帮助到某人!

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注