关于opencv读取图片、视频总是窗口一闪不出图、视频的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于opencv读取图片、视频总是窗口一闪不出图、视频的问题相关的知识,希望对你有一定的参考价值。
按照《学习OPENCV》例程2——播放AVI视频用vc6.0编写了代码,运行后窗口闪一下,无法加载视频,求教。(视频文件为avi格式,存放在根目录下)
以下为代码:
#include "highgui.h"
int main(int argc,char** argv)
cvNamedWindow("Example2",CV_WINDOW_AUTOSIZE);
CvCapture* capture=cvCreateFileCapture("May.avi"); //确定要读的AVI文件
IplImage* frame;
while(1)
frame=cvQueryFrame(capture); //cvQueryFrame的参数为CvCapture结构的指针。用来将下一帧视频文件载入内存
if(!frame)break;
cvShowImage("Example2",capture);
char c=cvWaitKey(33); //当前帧被显示后,等待33ms
if(c==27)break; //“Esc”键的ASCII码值为27,按下“Esc”后循环退出
cvReleaseCapture(&capture);
cvDestroyWindow("Example2");
这句话,把capture改成frame,你显示的是图片,不是capture。你试试,希望对您有帮助 参考技术A 把路径改成完整的试试,记得每一层之间隔开是用//而不是/追问
盘符还是加:的,譬如这样?:H:\\Open Cv\\2.播放AVI视频\\test.avi
3h精通OpenCV- 读取图像视频与网络摄像头
0、准备工作 |
---|
右击新建的项目,选择Python File,新建一个Python文件,然后在开头import cv2
导入cv2库。
1、读取图像 |
---|
- 调用imread()方法获取我们资源文件夹中的图片
- 使用imshow()方法显示图片,窗口名称为Output
- waitKey(0)这句可以让窗口一直保持,如果去掉这句,窗口会一闪而过
############打开图像############
img=cv2.imread("Resources/lena.jpg")
cv2.imshow("Output",img)
cv2.waitKey(0)
我们来看下效果:
2、读取视频 |
---|
- VideoCapture()方法的参数就是视频文件
- 循环中通过read不断地去读视频的每一帧,再通过imshow显示出来
- 最后if语句代表按q可以退出程序
############打开视频############
cap=cv2.VideoCapture("Resources/video.mp4")
while True:
success,img=cap.read()
cv2.imshow("Video",img)
if cv2.waitKey(1)&0xFF==ord('q'):
break
我们来看下效果,视频播放速度会很快:
3、网络摄像头 |
---|
如果是调用笔记本自带的摄像头,参数就为0;如果是外置USB摄像头,参数就为1。
接着,设置一下摄像头窗口的宽高,参数3就代表的宽度,数值设置为640,参数4代表的高度,数值设置为480,参数10代表的亮度,数值设置为100。
while循环中的和上面的读取视频是一样的,没有改动,作为模板。
cap=cv2.VideoCapture(0)
cap.set(3,640)#宽
cap.set(4,480)#高
cap.set(10,100)#亮度
while True:
success,img=cap.read()
cv2.imshow("Video",img)
if cv2.waitKey(1)&0xFF==ord('q'):
break
我们运行看下效果,可以看到笔记本前置摄像头打开(我拿本书挡住了,防止帅到你们):
OK,第一节的内容还是非常简单的,主要是让大家熟悉下OpenCV最基础的应用。眼过千遍不如手过一遍,快去动手敲一遍吧~💘
以上是关于关于opencv读取图片、视频总是窗口一闪不出图、视频的问题的主要内容,如果未能解决你的问题,请参考以下文章
对opencv读取的图片进行像素调整(1080, 1920) 1.cv2.VideoCapture(构造图片读取) 2.cv2.nameWindow(构建视频显示的窗口) 3.cv2.setWindo