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

使用OpenCV检测汽车坐标时触发cv2.error: (-215)断言失败错误求助

问题

我正在用Python编写一个为汽车绘制矩形框的程序,目前卡在获取汽车坐标的环节,代码如下:

#################################################
import cv2
#################################################
car_data = cv2.CascadeClassifier(cv2.data.haarcascades + "cars.xml")
img = cv2.imread("car_front.jpeg")
#################################################
img_but_bnw = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

car_coordinates = car_data.detectMultiScale(img_but_bnw)
print(car_coordinates)

#################################################
cv2.imshow("Detect Everything", img_but_bnw)
cv2.waitKey()
print("Code Completed")
#################################################

运行cv2.detectMultiScale函数时出现以下错误:

File "e:\Python2\Body_Detection.py", line 11, in <module>
    car_coordinates = car_data.detectMultiScale(img_but_bnw)
cv2.error: OpenCV(4.6.0) D:\a\opencv-python\opencv-python\opencv\modules\objdetect\src\cascadedetect.cpp:1689: error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier::detectMultiScale'

已尝试将cv2.CascadeClassifier("cars.xml")改为cv2.CascadeClassifier(cv2.data.haarcascades + "cars.xml"),但问题仍未解决。

解决方案

这个错误核心是级联分类器未成功加载或者图像读取失败,按以下步骤排查:

  • 检查车辆检测级联文件的文件名
    OpenCV默认的haarcascades目录中没有cars.xml,常用的车辆检测级联文件是haarcascade_car.xml或haarcascade_vehicle.xml,替换文件名尝试:

    car_data = cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_car.xml")
    

    如果目录中没有对应文件,需自行下载车辆检测级联文件放到项目目录,直接用文件名加载:

    car_data = cv2.CascadeClassifier("haarcascade_car.xml")
    
  • 验证图像是否成功读取
    在cv2.imread后添加检查,确认路径正确或文件未损坏:

    img = cv2.imread("car_front.jpeg")
    if img is None:
        print("图像读取失败,请检查路径或文件是否损坏")
        exit()
    
  • 确认级联分类器加载成功
    创建分类器后添加验证代码:

    if car_data.empty():
        print("级联分类器加载失败,请检查文件路径")
        exit()
    

内容的提问来源于stack exchange,提问作者EMEMEM123

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 19:10:35