Python OpenCV读取视频报错的问题解决

 更新时间:2022年01月10日 14:10:13   作者:Hong_Youth  
大家好,本篇文章主要讲的是Python OpenCV读取视频报错的问题解决,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下

最近由于项目的需要,经常需要使用opencv读视频操作,会经常遇到一个问题,就是视频读完之后会出现报错的情况,虽然不影响代码结果,但是对于吹毛求疵的我实在忍受不了。

会报错的程序:

# -*-coding:utf-8-*-
"""
File Name: read_video.py
Program IDE: PyCharm
Create File By Author: Hong
"""
import cv2


def read_video(video_path: str):
    """
    OpenCV读视频小工具,解决视频读完报错的问题
    :param video_path: 输入需要读取的视频文件路径
    :return: 没有返回值
    """
    print('视频路径:', video_path)
    cap = cv2.VideoCapture(video_path)
    while cap.isOpened():
        # get a frame
        ret, frame = cap.read()

        cv2.imshow("capture", frame)

        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    print('视频读完!')
    cap.release()
    cv2.destroyAllWindows()


if __name__ == '__main__':
    path = r'D:\multi_insect_videos\multi_object00.mp4'
    read_video(path)

可以把视频正常读完,但是结果会输出错误

Traceback (most recent call last):
  File "E:/PyCharmDocument/create_ST_image/multi_insect_processing/crop_video_to_images.py", line 76, in <module>
    read_video(path)
  File "E:/PyCharmDocument/create_ST_image/multi_insect_processing/crop_video_to_images.py", line 65, in read_video
    cv2.imshow("capture", frame)
cv2.error: OpenCV(4.5.3) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-uzca7qz1\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'

原因是视频结束后,opencv的imshow()函数读不了帧就出错了。解决方法:在imshow()之前加入判断,只有当有帧时才读,没有帧时直接退出循环。

不会报错的代码:

# -*-coding:utf-8-*-
"""
File Name: read_video.py
Program IDE: PyCharm
Create File By Author: Hong
"""
import cv2


def read_video(video_path: str):
    """
    OpenCV读视频小工具,解决视频读完报错的问题
    :param video_path: 输入需要读取的视频文件路径
    :return: 没有返回值
    """
    print('视频路径:', video_path)
    cap = cv2.VideoCapture(video_path)
    while cap.isOpened():
        # get a frame
        ret, frame = cap.read()
        if not ret:
            break
        cv2.imshow("capture", frame)

        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    print('视频读完!')
    cap.release()
    cv2.destroyAllWindows()


if __name__ == '__main__':
    path = r'D:\multi_insect_videos\multi_object00.mp4'
    read_video(path)

程序输出结果:

视频路径: D:\multi_insect_videos\multi_object00.mp4
视频读完!

Process finished with exit code 0

到此这篇关于Python OpenCV读取视频报错的问题解决的文章就介绍到这了,更多相关Python OpenCV读取视频报错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • PyTorch深度学习模型的保存和加载流程详解

    PyTorch深度学习模型的保存和加载流程详解

    PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推出了PyTorch,这篇文章主要介绍了PyTorch模型的保存和加载流程
    2021-10-10
  • Pycharm终端显示PS而不显示虚拟环境名的解决

    Pycharm终端显示PS而不显示虚拟环境名的解决

    这篇文章主要介绍了Pycharm终端显示PS而不显示虚拟环境名的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • python add_argument()用法解析

    python add_argument()用法解析

    这篇文章主要介绍了python add_argument()用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Python代码调用执行shell踩坑解决

    Python代码调用执行shell踩坑解决

    这篇文章主要为大家介绍了Python代码调用执行shell,踩过的坑解决方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • 图文详解OpenCV中光流以及视频特征点追踪

    图文详解OpenCV中光流以及视频特征点追踪

    光流是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的相应关系,这篇文章主要给大家介绍了关于OpenCV中光流以及视频特征点追踪的相关资料,需要的朋友可以参考下
    2021-08-08
  • python 接口测试response返回数据对比的方法

    python 接口测试response返回数据对比的方法

    本篇文章主要介绍了python 接口测试response返回数据对比的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • 教你用python实现自动回复QQ消息(不到60行)

    教你用python实现自动回复QQ消息(不到60行)

    因为生活中老是忘记各种事情,刚好又在学python,便突发奇想通过python实现提醒任务的功能,下面这篇文章主要给大家介绍了关于用python实现自动回复QQ消息(不到60行)的相关资料,需要的朋友可以参考下
    2022-10-10
  • python多线程死锁现象及解决方法

    python多线程死锁现象及解决方法

    这篇文章主要为大家介绍了python多线程死锁现象与解决方法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • keras.utils.to_categorical和one hot格式解析

    keras.utils.to_categorical和one hot格式解析

    这篇文章主要介绍了keras.utils.to_categorical和one hot格式解析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • python golang中grpc 使用示例代码详解

    python golang中grpc 使用示例代码详解

    这篇文章主要介绍了python golang中grpc 使用,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06

最新评论