图片文件
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;
}