解决python-opencv:(-215:Assertion failed) _img.empty() in function ‘cv::imwrite‘在将视频分成帧图片,写入时出现的问题

这篇具有很好参考价值的文章主要介绍了解决python-opencv:(-215:Assertion failed) _img.empty() in function ‘cv::imwrite‘在将视频分成帧图片,写入时出现的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近在搞视频检测问题,在用到将视频分帧保存为图片时,图片可以保存,但是会出现(-215:Assertion failed) !_img.empty() in function 'cv::imwrite'问题而不能正常运行,在检查代码、检查路径等措施均无果后,了解了视频分帧的原理后,才解决了问题,就这一个问题,解决了两天才解决,心态炸裂。缺少分帧结束的判断条件,在写入前,加上:

if frame is None;

           break

else:

error: (-215:assertion failed) !_img.empty() in function 'cv::imwrite,opencv

#导入必备的文件库
import cv2
import numpy as np
import matplotlib.pyplot as plt

#读取视频并分帧为图片
def video_to_frame(video_path,save_path):
    video = cv2.VideoCapture(video_path)
    index = 0
    if video.isOpened():
          f =int(video.get(cv2.CAP_PROP_FPS))    #读取视频帧率
          print("The video's fps is ",f)  #显示视频帧率
          rval,frame = video.read()      #读取视频帧    
    else:
        rval = False
    while rval:
        print(index)
        rval,frame = video.read()
        
        cv2.imwrite(save_path + "/"+ str(index)+".jpg",frame)
        index += 1  
if __name__ == "__main__":
    video_to_frame(video_path="C:/Users/15603917325/Desktop/video_coal/coal/video/6.mp4",
                   save_path="C:/Users/15603917325/Desktop/video_coal/coal/pictures_coal")           
    print("succeed")

出现报错的原因很简单,在使用rval,frame读取视频的帧时,帧图片保存在frame对应的索引里。而在写入图片时,没有加入判断条件,当视频被分帧结束后,cv2.imread函数还在将空白信息写入文件夹,所以会出现报错,因此,只要在 cv2.imwrite(save_path + "/"+ str(index)+".jpg",frame)代码前一行加入判断条件,判断分帧结束后,停止写入即可。加入判断条件:

if frame is None:

            break

else:

就可以正确导入分帧后的图片了

在写入前加上判断条件:

#导入必备的文件库
import cv2
import numpy as np
import matplotlib.pyplot as plt

#读取视频并分帧为图片
def video_to_frame(video_path,save_path):
    video = cv2.VideoCapture(video_path)
    index = 0
    if video.isOpened():
          f =int(video.get(cv2.CAP_PROP_FPS))    #读取视频帧率
          print("The video's fps is ",f)  #显示视频帧率
          rval,frame = video.read()      #读取视频帧    
    else:
        rval = False
    while rval:
        print(index)
        rval,frame = video.read()
        if frame is None:
            break
        else:
            cv2.imwrite(save_path + "/"+ str(index)+".jpg",frame)
        index += 1  
if __name__ == "__main__":
    video_to_frame(video_path="C:/Users/15603917325/Desktop/video_coal/coal/video/6.mp4",
                   save_path="C:/Users/15603917325/Desktop/video_coal/coal/pictures_coal")           
    print("succeed")

正确输出分帧后的图片,并保存在文件夹中:

error: (-215:assertion failed) !_img.empty() in function 'cv::imwrite,opencv

 文章来源地址https://www.toymoban.com/news/detail-552263.html

到了这里,关于解决python-opencv:(-215:Assertion failed) _img.empty() in function ‘cv::imwrite‘在将视频分成帧图片,写入时出现的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • error: (-215:Assertion failed)的两种解决方案

    问题描述:在对视频分帧读取进行差值哈希算法比较时出现读取错误现象,具体代码内容和报错如下: 而在差值哈希算法运行前,均值哈希算法可以正常运行: 反复仔细观察上述两段代码之后判断是img图片路径读取失败,下方为两种解决方法: 1. 删除报错语句的下方部分:

    2024年02月15日
    浏览(49)
  • opencv error: (-215:Assertion failed) size.width>0 && size.height>0 in function ‘cv::imshow‘

    问题:因为读入图片的宽和高至少有一个不大于0。可以说就是没有读入图片 原因分析:路径出错或没有图片 1.路径里面有中文 ,opencv-python不支持直接读取中文路径,把 图片路径改成英文或把图片换一个路径就行。 如果需要改成中文路径的话可以参考【opencv】实现中文路径

    2024年02月02日
    浏览(70)
  • opencv cv2.imread()报错: error: (-215:Assertion failed) !_src.empty() in function ‘cv::cvtColor‘

    问题: pycharm中使用opencv , 执行cv2.imread(filepath)读取图片时报错: cv2.error: OpenCV(4.7.0) D:aopencv-pythonopencv-pythonopencvmodulesimgprocsrccolor.cpp:182: error: (-215:Assertion failed) !_src.empty() in function ‘cv::cvtColor’ 解决方案: 尝试以下几种方法: 1.查图片路径中是否有中文,尽量不要含中

    2024年02月13日
    浏览(59)
  • opencv报错error: (-215:Assertion failed) src.type() == CV_8UC1 in function ‘cv::threshold‘

    今天在做阈值分割算法实验时,出现了如下错误。 传入的的图像是经过中值滤波后的图像,原以为在进行滤波时进行了灰度化处理,就不需要在这里进行灰度转换了,但是经过多次排查后发现,是因为在传入经过中值滤波后的图像,没有加入灰度化处理。 将传入图像经过灰

    2024年02月11日
    浏览(43)
  • cv2.error: OpenCV(4.6.0) (-215:Assertion failed) !_src.empty() in function ‘cv::cvtColor‘

    OpenCV(4.6.0) imread 读取空 问题解决方法小记 详情如下: 解决方案 1. 安装imageio模块 2. 代码修改 材料参考 cv2.imread获取图片为空 2022-11-03关于cv2.imread()读取图片返回None的原因及解决办法

    2024年03月13日
    浏览(79)
  • 解决 error: (-215:Assertion failed) _src.empty() in function ‘cv::cvtColor‘

    im, im_info = decode_image(im, im_info)   File \\\"D:PyCharmDeploymentdeploy_waterpythonpreprocess.py\\\", line 34, in decode_image im = cv2.cvtColor(im, cv2.COLOR_BGR2RGB) cv2.error: OpenCV(4.5.5) D:aopencv-pythonopencv-pythonopencvmodulesimgprocsrccolor.cpp:182: error: (-215:Assertion failed) !_src.empty() in function \\\'cv::cvtColor\\\'   相信大家

    2024年02月05日
    浏览(46)
  • 解决error: (-215:Assertion failed) _src.empty() in function ‘cv::cvtColor‘

    在OpenCV环境下,运行代码时出现: 原因是: cv::cvtColor中无对象资源 定位到代码问题所在行, 发现imgRGB没有被传入图像 我的代码传入图像是从摄像头中传入,继续定位到cap这里,将1改为0即可 ( 笔记本内置摄像头为0,USB外接摄像头为1 ) 总结 同一个报错解决的思路也是不

    2024年02月14日
    浏览(49)
  • opencv调用摄像头报错(-215:Assertion failed) size.width>0 && size.height>0 in function ‘cv::imshow‘

    我使用OpenCV调用摄像头时报错: 问题分析如下: error提示断言失败了,因为读入图片的宽和高至少有一样不大于0。 报错代码如下: 改进方案: 运行结果: Nice!顺利运行! 备注: 我在CSDN找到了许多方法,但都未得到解决,最终请教大佬得已解决,与遇到相同问题的诸位分

    2024年02月12日
    浏览(51)
  • 遇到:(-215:Assertion failed) !_src.empty() in function ‘cv::cvtColor‘ 错误应该如何解决

    遇到 \\\"(-215:Assertion failed) !_src.empty() in function \\\'cv::cvtColor\\\'\\\" 错误通常表示在使用OpenCV中的颜色转换函数 ​ ​cvtColor()​ ​ 时,输入图像为空。要解决这个问题,可以尝试以下方法: 检查图像路径:确保你的图像路径正确,且图像文件存在。如果图像文件不存在或路径错误,就

    2024年02月10日
    浏览(40)
  • cv2.error: (-215:Assertion failed) !ssize.empty() in function ‘resize‘解决方案

    在做手势图像分类的时候,遇到了数据集不均衡的问题。于是对部分图像少的类别进行了数据集扩充。 具体如何扩充的参考了这位博主的方法: 数据集太少怎么办?数据集扩充方法 后续继续对数据集进行训练的时候就遇到了如题目所示的问题:cv2.error: (-215:Assertion failed) !

    2024年02月09日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包