cv2.error: OpenCV(4.1.2) error: (-215:Assertion failed) !_img.empty() in function ‘cv::imwrite‘

本文详细解析了在使用OpenCV的cv2.imwrite()函数时遇到的常见错误:Assertion failed !_img.empty(),并提供了排查及解决方案。文章指出,错误通常由图片对象为空或路径问题引起,建议检查图片或视频的路径及文件本身。
部署运行你感兴趣的模型镜像

Traceback (most recent call last):
  File "D:/FER/FacePP/decode_json.py", line 174, in <module>
    demonstrate(r'C:\Users\user-pc\Documents\Dataset\FER\JsonFiles\FacePP\BBQNR\S3\angry\13342.json', 'angry')
  File "D:/FER/FacePP/decode_json.py", line 157, in demonstrate
    cv2.imwrite(new_path, new_img)
cv2.error: OpenCV(4.1.2) C:\projects\opencv-python\opencv\modules\imgcodecs\src\loadsave.cpp:715: error: (-215:Assertion failed) !_img.empty() in function 'cv::imwrite'

 

注意查看要imwrite的对象是否为空,在本例中为_img.

再解释一下,如果cv2.imwirte()的返回值是None,那么就会出现这个错.这个可能是因为

  1. 你的图片或者视频的路径有问题
  2. 你的图片或者视频文件本身有问题

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

### 解决方案 当遇到 `cv2.error: OpenCV(4.5.5)` 报错,具体为 `(-215:Assertion failed) !_src.empty()` 错误时,这通常意味着尝试执行颜色空间转换操作的对象为空。以下是几种可能的原因及其对应的解决方案: #### 图像路径问题 如果图像未能成功加载,则可能是由于路径中含有中文字符或其他不兼容字符造成的。应确保所使用的文件路径全部采用英文字符[^3]。 ```python import cv2 # 使用绝对路径并确认其正确性 image_path = "path/to/your/image.jpg" image = cv2.imread(image_path) if image is None: print("Image not found or unable to read.") else: gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) ``` #### 文件名冲突 另一个常见原因是项目中的某些变量名称或文件夹命名与待处理的数据集内的条目相重合,从而意外替换了预期的目标对象。检查是否存在这样的情况,并适当调整涉及的标识符以消除潜在干扰[^1]。 #### 输入验证 无论何时,在调用任何依赖于外部资源(如磁盘上的文件)的操作之前,都应该先检验这些资源确实存在且可访问。对于本案例而言,就是在应用`cvtColor`变换前先行测试源图像是不是已经被正确定义而非空状态。 ```python def validate_and_convert_color(src_img): if src_img is None or src_img.size == 0: raise ValueError("Source image cannot be empty.") try: converted_img = cv2.cvtColor(src_img, cv2.COLOR_BGR2RGB) return converted_img except Exception as e: print(f"An exception occurred during color conversion: {e}") return None ``` 通过上述方法可以有效地预防和修复由 `_src.empty()` 断言失败引发的问题。值得注意的是,除了以上提到的因素外,还有其他可能导致相同错误的情况,比如内存不足或是库版本之间的兼容性差异等。因此建议开发者们保持良好的编程习惯,及时更新软件包至最新稳定版,并留意官方文档中有关API变更的通知。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值