OpenCV(4.5.2)/tmp/pip-req-build-sl2aelck/opencv/modules/imgproc/src/color.cpp:182:错误:(-215:断言失败)!_sr

Posted

技术标签:

【中文标题】OpenCV(4.5.2)/tmp/pip-req-build-sl2aelck/opencv/modules/imgproc/src/color.cpp:182:错误:(-215:断言失败)!_src.empty()在函数\'cvtColor \'【英文标题】:OpenCV(4.5.2) /tmp/pip-req-build-sl2aelck/opencv/modules/imgproc/src/color.cpp:182: error:(-215:Assertion failed) !_src.empty() in function 'cvtColor'OpenCV(4.5.2)/tmp/pip-req-build-sl2aelck/opencv/modules/imgproc/src/color.cpp:182:错误:(-215:断言失败)!_src.empty()在函数'cvtColor ' 【发布时间】:2021-11-28 06:36:51 【问题描述】:

我尝试使用计算机视觉技术通过人脸识别来制作考勤系统。

Python Version: 3.8.10

代码如下,

import cv2
import numpy as np
import face_recognition
import os

path = 'attendanceImages'
images = []
classNames = []
myList = os.listdir(path)
print(myList)
for  cl in myList:
    curImg = cv2.imread(f"path / cl")
    images.append(curImg)
    classNames.append(os.path.splitext(cl)[0])
print(classNames)

def findEncodings(images):
    encodeList = []
    for img in images:
        img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
        encode = face_recognition.face_encodings(img)[0]
        encodeList.append(encode)
    return  encodeList

encodeListKnown = findEncodings(images)
print(len(encodeListKnown))  ##--> It would be printed the length of dataset 

注意:-print(len(encodeListKnown)) 打印后会显示长度,但错误会失败

下面给出了面临的错误

Traceback (most recent call last):
  File "/home/imdadul/PycharmProjects/faceVerification/AttendanceViaFace.py", line 25, in <module>
    encodeListKnown = findEncodings(images)
  File "/home/imdadul/PycharmProjects/faceVerification/AttendanceViaFace.py", line 20, in findEncodings
    img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
cv2.error: OpenCV(4.5.2) /tmp/pip-req-build-sl2aelck/opencv/modules/imgproc/src/color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cvtColor'

['sohelRana.jpg', 'apurbo.jpg', 'RamCharan.jpg', 'ananyaPanday.jpg', 'imdadulHaque.jpg']
['sohelRana', 'apurbo', 'RamCharan', 'ananyaPanday', 'imdadulHaque']

Process finished with exit code 1

查看已安装包的版本,附文件,请关注。

【问题讨论】:

您是否检查了正确加载的图像?您的 imread 路径构造看起来不正确。试试:Path(os.path.abspath(path))/cl(与Path 来自docs.python.org/3/library/…) @Tom 谢谢你的建议,已经解决了! 路径问题,再次。在您提问之前,请搜索您收到的错误消息。你会发现很多关于这个的现有问题,有些甚至有答案。 这能回答你的问题吗? imread returns None, violating assertion !_src.empty() in function 'cvtColor' error 【参考方案1】:

问题解决了!

我在curImg = cv2.imread(f"path/cl") 中犯了错误,这一行。我应该删除 / 之前和之后的空格。就是这样。其实是没有找到正确的位置,现在已经解决了!

【讨论】:

以上是关于OpenCV(4.5.2)/tmp/pip-req-build-sl2aelck/opencv/modules/imgproc/src/color.cpp:182:错误:(-215:断言失败)!_sr的主要内容,如果未能解决你的问题,请参考以下文章

VS2019配置opencv-4.5.2-vc14_vc15

联合OpenCV4.5.2利用微信开源的库识别二维码

基于OpenCV和C++的控制台播放视频

Python opencv之实现简单的图像处理

运行离子服务时出错:[ng] 错误:Angular 编译器需要 TypeScript >=4.4.2 和 <4.5.0,但找到了 4.5.2

从 .NET 4.5 MVC 4 升级到 .NET 4.5.2 MVC 5.2