opencv

用opencv读取视频加入滚动条并进行canny边缘检测以及平滑处理



#include"highgui.h"

#include"cv.h"


using namespace cv;
int g_slider_position=0;
CvCapture* g_capture=NULL;


void onTrackbarSlider(int pos)
{
cvSetCaptureProperty(
g_capture,
CV_CAP_PROP_POS_FRAMES,
pos);

}


void Example(String Filename)
{

cvNamedWindow("Example1 in");
cvNamedWindow("Example1 out");
g_capture=cvCaptureFromFile("F://FFOutput//02.avi");


int frames=(int)cvGetCaptureProperty(
g_capture,
CV_CAP_PROP_FRAME_COUNT);
if(frames!=0){
cvCreateTrackbar(
"position",
"Example1 in",
&g_slider_position,
frames,
onTrackbarSlider);}

      IplImage* in;
 //IplImage* out=0;
while(1)
{


in=cvQueryFrame(g_capture);

g_slider_position=(int)cvGetCaptureProperty(g_capture,CV_CAP_PROP_POS_FRAMES);//这两段实现了滚动条随着视频播放自动移动
cvSetTrackbarPos("position","Example1 in",g_slider_position);

if(!in) break;

IplImage* out=cvCreateImage(
cvGetSize(in),
IPL_DEPTH_8U,
1);
cvCanny(in,out,10,100,3);
//cvSmooth(in,out,CV_GAUSSIAN,3,3);
cvShowImage("Example1 in",in);
cvShowImage("Example1 out",out);


char c=cvWaitKey(33);
if(c==27)
break;



}

cvReleaseCapture(&g_capture);
cvDestroyWindow("Example1 in");
cvDestroyWindow("Example1 out");


}


int main(int argc,char* argv[])
{
Example("avi");

//onTrackbarSlider(20);
return 0;


}

运行结果:






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值