基础1

图片文件

IplImage* img=cvLoadImage("img//1.jpg",CV_LOAD_IMAGE_COLOR);

/* 8bit, color or not */
#define CV_LOAD_IMAGE_UNCHANGED  -1
/* 8bit, gray */
#define CV_LOAD_IMAGE_GRAYSCALE   0
/* ?, color */
#define CV_LOAD_IMAGE_COLOR       1
/* any depth, ? */
#define CV_LOAD_IMAGE_ANYDEPTH    2
/* ?, any color */
#define CV_LOAD_IMAGE_ANYCOLOR    4

 

IplImage* img=cvLoadImage("img//1.jpg",CV_LOAD_IMAGE_ANYCOLOR|CV_LOAD_IMAGE_ANYDEPTH);//加载最真实的图像

	IplImage* img=cvLoadImage("img//1.jpg",CV_LOAD_IMAGE_ANYCOLOR|CV_LOAD_IMAGE_ANYDEPTH);

	cvNamedWindow("test",1);
	cvShowImage("test",img);

	cvWaitKey(0);

	cvReleaseImage(img);
	cvDestroyWindow("test");


视频文件

需要是avi文件

解码器1下载:a
 XviD-1.1.3-27042008.rar (602.29 KB, 下载次数: 12114) 

 

 opencv1.0  对视频格式的支持不好。

	cvNamedWindow("avi",CV_WINDOW_AUTOSIZE);
	//CvCapture* capture=cvCreateFileCapture("img//video.avi");
	CvCapture* capture=cvCreateCameraCapture(-1);
	

	IplImage* frame;

	while (1)
	{
		frame=cvQueryFrame(capture);
		//if(!frame)break;
		cvShowImage("avi",frame);
		char c=cvWaitKey(100);
		if (c==27)
		{
			break;
		}
	}

	cvReleaseCapture(&capture);
	cvDestroyWindow("avi");


 

 视频播放控制

#pragma comment(lib,"cxcore.lib")
#pragma comment(lib,"cv.lib")
#pragma comment(lib,"highgui.lib")
#pragma comment(lib,"ml.lib")
#pragma comment(lib,"cvcam.lib")
#pragma comment(lib,"cvaux.lib")


#include <stdio.h>
#include <iostream>

#include <cv.h>
#include <cxcore.h>
#include <highgui.h>

using namespace std;

CvCapture* g_capture=NULL;
int g_slider_pos=0;
int frame_count=0;//当前视频帧

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



int main()
{

	cvNamedWindow("show");
	g_capture=cvCreateFileCapture("img//video.avi");

	int frames=(int)cvGetCaptureProperty(g_capture,CV_CAP_PROP_FRAME_COUNT);
	if (frames>0)cvCreateTrackbar("postion","show",&g_slider_pos,frames,onTrackbarSlider);


	IplImage* frame;

	while (1)
	{

		frame=cvQueryFrame(g_capture);
		if(!frame){
			cout<<"the frame is NULL"<<endl;
			break;
		}
	
			cvShowImage("show",frame);
			char c=cvWaitKey(33);
			if(c==27)break;
			
			cvSetTrackbarPos("postion","show",frame_count);
			frame_count++;

	}

	//释放资源
	cvReleaseCapture(&g_capture);
    cvDestroyWindow("show");

		return 0;
}

	





 

把图片合成视频文件

 

int main(int argc, char* argv[])
{
	CvSize size=cvSize(640,480);
	double fps=15;

	CvVideoWriter* write=cvCreateVideoWriter(
		"c:\\out.avi",
		-1,//CV_FOURCC('X','V','I','D'),//会跳出来让你选择解码器
		fps,size,
		1//默认1 彩色  0灰度
		);

	int image_id=0;
	char filename[256];
	sprintf(filename,"img//imgs//%d.jpg",image_id);

	IplImage* src=cvLoadImage(filename);
	if (!src)
	{
		return 0;
	}


	IplImage* src_resize=cvCreateImage(size,8,3);
	cvNamedWindow("avi");

	while (src)
	{
		cvShowImage("avi",src_resize);
		cvWaitKey(1);

		cvResize(src,src_resize);
		cvWriteFrame(write,src_resize);

		cvReleaseImage(&src);

		sprintf(filename,"img//imgs//%d.jpg",image_id++);
		src=cvLoadImage(filename);

	}


	cvReleaseVideoWriter(&write);
	cvReleaseImage(&src_resize);


	return 0;
}


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值