问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

opencv将视频canny后显示播放一卡一卡的,是不是需要的canny时间太长了,怎么解决

发布网友 发布时间:2022-04-26 07:54

我来回答

1个回答

热心网友 时间:2023-10-08 23:34

显示卡的话可能是申请的内存没有释放,处理过程中申请的内存使用后要释放;

下面是我的代码,VS2010+OpenCV2.3和VC6.0+OpenCV1.0下都能运行通过,没有一卡一卡现象。
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <cv.h>
#include <highgui.h>
#include "cxcore.h"
#include "windows.h"

int main()
{
CvCapture *capture = NULL;
IplImage *frame = NULL;

char *AviFileName = "D:\\AVI\\22.avi";//视频的目录
char *AviSavePath = "D:\\截图\\";//图片保存的位置, 注意“截图”文件夹需要手动创建
const int jiange = 1;//间隔 X 帧保存一次图片
capture = cvCaptureFromAVI(AviFileName);
//获取视频信息
cvQueryFrame(capture);
int frameH = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT);
int frameW = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH);
int fps = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);
int numFrames = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_COUNT);
printf("\tvideo height : %d\n\tvideo width : %d\n\tfps : %d\n\tframe numbers : %d\n", frameH, frameW, fps, numFrames);

if(!capture)
{
printf("Could not initialize capturing...\n");
return 0;
}

cvNamedWindow("AVI player",1);
int count_tmp = 0;//计数总帧数
char tmpfile[100]={'\0'};
while(true)
{
if(cvGrabFrame(capture))
{
if (count_tmp % jiange == 0)
{
frame=cvRetrieveFrame(capture);
IplImage* img_Canny = cvCreateImage(cvGetSize(frame),frame->depth,1);
IplImage *dst_gray = cvCreateImage(cvGetSize(frame),frame->depth,1);

cvCvtColor(frame,dst_gray,CV_RGB2GRAY);//将RGB三通道图像转化为单通道灰度图
cvCanny(dst_gray,img_Canny,60,200,3);//canny算法检测边缘
cvShowImage("AVI player",img_Canny);//显示当前帧
sprintf(tmpfile,"%s\\%d.jpg",AviSavePath,count_tmp);//使用帧号作为图片名

// if(count_tmp==90)
cvReleaseImage(&img_Canny);
cvReleaseImage(&dst_gray);
cvSaveImage(tmpfile,frame);
}
if(cvWaitKey(10)>=0) //延时
break;
++count_tmp;

}
else
{
break;
}
}
cvReleaseCapture(&capture);
cvDestroyWindow("AVI player");
printf("总帧数:%d\n",count_tmp);

}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何计算阶梯电价 安宁密马龙村一日游最佳路线 马龙村自然村人口卫生 马龙村乡村概况 ...的蓝色小图标是什么东西啊,如果想关闭要怎么关闭!英文的。 佟悦演的《双人房单人床》片尾曲 《双人房的单人床》txt全集下载 双人房单人床剧情概述 如何挽回成熟双鱼男的心 红烧黄鳝的做法教程 区块链企业服务的作用和特点是什么? 灵飞经的小楷是什么字体 最近俄听说非人学院手游的雷震子改版了,请问雷震子改版后是加强了还是削弱了? 在MFC 多文档编程中使用OpenCV显示图像和视频时,能将opencv创建的窗口嵌入主窗口中成为一个子窗口吗? 区块链是什么?为什么很多互联网大企业都热衷投资 道教《灵飞经》里有一句澡除五累,这个“五累”指什么? 非人学园2022多少G opencv能读取视频~但是无法读取摄像头,显示只有一片黑~ 区块链与企业服务市场怎么结合? 灵飞经适合什么阶段练 《非人学园》新时装有啥? OpenCV 视频问题 学习小楷,是选择王羲之的《黄庭经》,还是选择《灵飞经》?两者比较各有什么特点? 关于opencv读取图片、视频总是窗口一闪不出图、视频的问题 在linux下qt界面上用opencv打开摄像头到时候摄像头打开之後黑屏无法显 ... 灵飞经论坛是什么样的网站?是书法的吗? 区块链能解决企业什么问题? 关于OpenCV视频播放的一个小问题 最时尚的qq网名(韩国名) 为什么喜欢《灵飞经》理由是什么? 非人学园联动新英雄绿谷出久怎么获得 非人学园绿谷出久获取方式一览_百 ... 区块链与企业市场服务怎么结合? 我买的灵飞经里面怎么有两篇?分别是什么? 非人学园胧月咒江山什么时候返场 opencv视频播放不了的问题是如何解决的?播放时一闪而过。 天翼电子商务有限公司在区块链赋能企业金融这方面,是不是表现得挺抢眼的? opencv可以打开哪些格式的视频文件?2.3版能否打开mp4? 非人学园野怪为什么改版? 想用opencv打开笔记本电脑摄像头并从视频中提取图像,单摄像头打开后图像不显示。 《非人学园》和灵能的联动有哪些内容? 企业区块链服务? opencv3.4.1调用视频出现这个情况怎么搞 opencv 做视频捕捉的时候摄像头无法开启。显示出来的图像都是黑色的。 非人学园让下最新游戏包,可是我下过新的之后找不到账号了,而且我是用手机号绑定的,它都没有这个选择? opencv打开视频文件没有声音 网易非人学园和我的英雄学院联动出的英雄是哪几个呀 非人学园更新后为什么看不到外国人说话了? 非人学院为什么不删除绿谷 “ovo”意思是什么? 女生给你发ovo是什么意思