解决:cv2.error: OpenCV(4.x) ... (-215:Assertion failed) !empty() in function ‘cv::CascadeClassifier...

解决:cv2.error: OpenCV(4.x) … (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier…





背景

在使用之前的代码时,报错:
cv2.error: OpenCV(4.3.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-b460jg4o\opencv\modules\objdetect\src\cascadedetect.cpp:1689:
error: (-215:Assertion failed) !empty() in function ‘cv::CascadeClassifier::detectMultiScale’



报错问题

cv2.error: OpenCV(4.3.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-b460jg4o\opencv\modules\objdetect\src\cascadedetect.cpp:1689: 
error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier::detectMultiScale'


报错翻译

主要报错信息内容翻译如下所示:

cv2.error: OpenCV(4.3.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-b460jg4o\opencv\modules\objdetect\src\cascadedetect.cpp:1689: 
error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier::detectMultiScale'

翻译:

cv2.error:OpenCV(4.3.0) C:UsersappveyorAppDataLocalTemp1pip-req-build-b460jg4oopencvmodulesobjdetectsrccascadedetect.cpp:1689:
错误:(-215:断言失败)!empty()在函数“cv::CascadeClassifier::detectMultiScale”中


报错位置代码

    cv2.imwrite(save_dir + '\' + img_name, img)


报错原因

经过查阅资料,发现是因为引用图片路径中出现中文导致的,OpenCV的imwrite()方法对中文的支持不友好。

小伙伴们按下面的解决方法即可解决!!!



解决方法

看到网上有人说,是由于路径中出现了数字而导致路径读取错误。改正方法:将路径中的单斜杠,变成双斜杠。

例如:

cv2.imwrite(save_dir + '\\' + img_name, img)

但是后面还是报同样的错误。

要解决这个错误,需要将图片路径修改为全英文路径,就没问题了。

正确的代码是:

for i in ori_imgs_single:
    img_name = i.split('\\')[-1]
    img = cv2.imread(i)
    cv2.imwrite(save_dir + '\\' + img_name, img)
print('save OK!')

运行结果截图如下:

在这里插入图片描述



今天的分享就到此结束了

欢迎点赞评论关注三连

在这里插入图片描述

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ninghes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值