opencv报错解决1——OpenCV(4.5.4-dev):error:CAP_IMAGES: can‘t find starting number: ‘cv::icvExtractPattern

这篇具有很好参考价值的文章主要介绍了opencv报错解决1——OpenCV(4.5.4-dev):error:CAP_IMAGES: can‘t find starting number: ‘cv::icvExtractPattern。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这个报错耗了我六个多小时,希望通过我的博客能帮大家省下这个时间。

在日常写脚本的时候出现了这样一个报错:

OpenCV(4.5.4-dev) D:\a\opencv-python\opencv-python\opencv\modules\videoio\src\cap_images.cpp:253: error: (-5:Bad argument) CAP_IMAGES: can't find starting number (in the name of file): C:/Users/Desktop/test in function 'cv::icvExtractPattern'

在网上查了很多类似的报错的解决方法,几乎所有的都试过了,opencv卸载重装了很多遍,都没有用,甚至有的时候还出现了结尾是cv::imwrite的报错。这个报错从晚上九点一直到凌晨三点半我才找到解决方法。

首先,我的代码如下:

import cv2
import os

times = 1  # 提取的帧记数
sourceFileName = '01_11__talking_against_wall__9229VVZ3'
frame_frequency = 50  # 提取视频的帧率,即每1帧提取几个视频
file_path = 'videoTest/' + sourceFileName + '/'
video_path = "C:/Users/Desktop/test"  # 读取视频的文件目录
if not os.path.exists(file_path):  # 如果文件路径不存在就创建文件夹
    os.makedirs(file_path)
camera = cv2.VideoCapture(video_path)
while True:
    times = times+1
    res, image = camera.read()
    if not res:
        print('not res , not image')
        break
    if times % frame_frequency == 0:
        cv2.imwrite(file_path + "/" + str(times) + ".jpg", image)
        times = times + 1  # 记录存储照片的次数
    camera.release()

经过很长时间的探寻我,我终于发现了我的问题所在。我被video_path这个变量名给误导了,以为只需要传入视频文件所在的路径即可,但事实上,cv2.VideoCapture要接收的是视频所在路径+视频名称/格式,将上述代买第8行修改为:video_path = "C:/Users/11304/Desktop/test/01_11__talking_against_wall__9229VVZ3.mp4"

原报错解决,可以正常运行。

网上有很多解决方法,由于我基本都看过一遍,所以在此总结一下,方便大家解决。我发现opencv这种类似格式的报错大多是由以下几种原因造成的:

(1)文件目录或者视频名称中含有中文,必须修改成英文

(2)图片或者视频不存在

(3)opencv与python的版本不对应。使用pip或者conda安装的opencv版本默认为最新版,但是事实上opencv和python有一个比较严格的版本对应关系。在此我附上了下载链接:

https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/opencv-python/

里面cp后面的数字指的是python版本;windows系统下载win的,Linux、mac以此类推;X64,X32是电脑位数,这个自己查看自己电脑的位数即可,64位用X64,32位用X32。

下载好之后,将下载的whl放到python对应环境的Lib/sitepackage里面,这里面专门用于存放python的一些库,然后在对应文件夹打开cmd用指令安装即可:pip install 文件名

这里再附上opencv的官网,里面可以帮助你解决一些常见的安装报错问题:https://pypi.org/project/opencv-python/

当时我解决这个问题是受到了一个外国小哥回答的启发,即有可能不是opencv安装的问题,而是我原代码出了错,所以我去网上找了别人跟我写的类似功能的代码去比对,最后历经六小时才发现原因所在,希望能帮助大家省下这个时间。文章来源地址https://www.toymoban.com/news/detail-660731.html

到了这里,关于opencv报错解决1——OpenCV(4.5.4-dev):error:CAP_IMAGES: can‘t find starting number: ‘cv::icvExtractPattern的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包