opencv VideoCapture.read()读取错误

错误详情:

OpenCV Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow, file ..\..\..\..\opencv\modules\highgui\src\window.cpp, line 261

源码:

import cv2 as cv
clicked = False
def onMouse(event,x,y,flags,param):
    global clicked
    if event == cv.EVENT_LBUTTONUP:
        clicked = True

capture = cv.VideoCapture(0)
capture.open(0)
success, frame = capture.read()
cv.namedWindow(‘mywin‘)cv.setMouseCallback(‘mywin‘,onMouse)while cv.waitKey(1)==-1 andnot clicked:  cv.imshow("mywin",frame)  success, frame = capture.read()cv.destroyAllWindows()capture.release()

在控制台敲入上面的命令就可以看到视频,debug也可以,就是直接运行不行,一直报上面的错误,success一直为false

找网上的资料,基本上是说release和debug时OpenCV执行的dll文件(opencv_ffmpeg.dll 32位)不同导致的,也不知道到哪去设置这玩意儿......

郁闷了很久,我想是不是视频设备需要延时,因为我在命令行上敲和在debug运行的时候都是在capture.open(0)这地方有逗留的,

所以就在下面加了行time.sleep(1)

点击运行,喔~成功了,这也是奇葩的坑...

时间: 2024-08-07 04:14:55

opencv VideoCapture.read()读取错误的相关文章

ios cordite 读取错误CoreData could not fulfill a fault for '0x15b4a870

解释在这里 http://stackoverflow.com/questions/14296892/nsobjectinaccessibleexception-reason-coredata-could-not-fulfill-a-fault 这里是中文的详细解释 http://blog.csdn.net/meegomeego/article/details/17654947 关于这个问题,我们涉及到2个函数: /* returns the object for the specified ID

去除 \ufeff——访问网址或读取文件莫名其妙无法读取错误——raise InvalidSchema("No connection adapters were found for '%s'" % url) requests.exceptions.InvalidSchema: No connection adapters were found for

raise InvalidSchema("No connection adapters were found for '%s'" % url)requests.exceptions.InvalidSchema: No connection adapters were found for 访问的网址明明没有问题,却报以上的错误,还以为requests库出问题了呢. 细心排查一下你会发现网址前面可能会有\ufeff这个字符,这就是UFT-8编码导致的. 把 UTF-8 编码 改成 UTF-

opencv视频流的读取和处理

Opencv提供一个简单易用的框架以提取视频文件和USB摄像头中的图像帧,如果只是想读取某个视频,你只需要创建一个VideoCapture实例,然后在循环中提取每一帧.下面是一个简单的代码 #include<opencv2\core\core.hpp> #include<opencv2\imgproc\imgproc.hpp> #include<opencv2\highgui\highgui.hpp> #include<iostream> using nam

[OpenCV] 1、读取图片

>_<" 安装及配置请看http://www.cnblogs.com/zjutlitao/p/4042074.html >_<" 这篇是一个简单的在VS2012里运行的openCV读取图片并显示的简单例子 1 #include <stdio.h> 2 #include <opencv2/opencv.hpp> 3 using namespace std; 4 using namespace cv; 5 int main(int argc,

DataContext 数据在F5刷新频繁,会出现数据读取错误

DataContext是 Linq to sql数据模型的底层数据库对象所有LInq数据表对象都是由它派生的, 只要建立一个数据库操作,就建立一个datacontext当然,可以用静态的Datacontext,但不推荐,所以datacontext对象在频繁调用时,会出现数据错误问题, 在使用datacentext对象时候,它会生成数据缓存,也就是为了提高数据读取速度,它会将数据库对象进行缓存,或者返回IQueryable结果集,使数据查询结果持续到需要select的时候, 解决方法:建立一个数据

opencv+cuda内存泄露错误

在编写的模版中,利用opencv进行拷贝图像data时,报错如下: Unhandled exception at 0x74dec42d in XXXX_CUDA.exe: Microsoft C++ exception: cv::Exception at memory location 0x0017f878. 定位到错误在: cvReleaseImage( &copy_y );也就是说释放图像数据是时候,发生内存非法读写: template<class T> void grad_y(

Ubuntu server 12.04 U盘安装 光盘读取错误

今天用Ultraiso将Ubuntu server 12.04 刻入U盘中安装系统,中介提示错误从光盘中读取数据出错.上网搜了下解决方案,很多推荐用win32diskimager这款软件进行刻录.初次之外,其实还有另外一种解决方案.下面做一些详细解释: 1. 将ubuntu-12.04-server-i386.iso拷贝到刚才刻录的U盘的根目录下. 2. 开机从U盘启动,到出错时按ALT+F2切换到另一个Console,输入以下命令: umount /dev/sdc4 //sdc4是我的U盘设备

【OpenCV】imread读取数据为空

直接加配置好的props文件到新的工程时,会出现imread读出来的Mat为空的情形,搜了一下,发现是opencv的配置问题!!! 是这样的,之前配置时为了省事儿,无论是Debug还是Release中的附加依赖项,都添加了所有的lib,也就是没有分Debug和Release. 但实际上OpenCv是要分的,文件名尾带d的为Debug库函数,不带d的为Release库函数.只需将其中库函数分开添加进附加依赖项即可: 其他版本以此类推. Debug库: opencv_calib3d244d.libo

ObjectOutputStream 追加写入读取错误

摘自http://blog.csdn.net/mitkey/article/details/50274543 问题描述: 用类ObjectOutputStream向文件写读对象时,碰到一个问题:新建一个文件,用输出流ObjectOutputStream向文件连续写几个对象,关闭输出流,然 后读取,这些对象都可以读出:这时在向该文件增加对象,新写的对象就读不出了 问题出现的原因: ObjectOutputStream建立后第一次写入一个对象时, 会在对象数据前写入一些标志的数据"AC ED  00