【OP001】opencv强大的视频图形图像处理

OpenCV是什么?

  OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

为什么有OpenCV?

计算机视觉市场巨大而且持续增长,且这方面没有标准API,如今的计算机视觉 软件大概有以下三种:

1.研究代码(慢,不稳定,独立并与其他库不兼容)

2.耗费很高的商业化工具(比如Halcon, MATLAB+Simulink)

3.依赖硬件的一些特别的解决方案(比如视频监控,制造控制系统,医疗设备)这是如今的现状。而标准的API将简化计算机视觉程序和解决方案的开发。OpenCV致力于成为这样的标准API。 OpenCV致力于真实世界的实时应用,通过优化的C代码的编写对其 OpenCV与其它视觉函数库性能对比 执行速度带来了可观的提升,并且可以通过购买Intel的IPP高性能多媒体函数库(Integrated Performance Primitives)得到更快的处理速度。右图为OpenCV与当前其他主流视觉函数库的性能比较。


下面是两个入门小程序:

一、opencv 加载图片

//第一个小程序,打开一张图片
void openphoto(){
	IplImage * src = cvLoadImage("F:\\1.jpg",1);//0灰色  1 彩色加载图像  -1 不变
	cvNamedWindow("win");
	cvShowImage("win", src);
	cvWaitKey(0);
	cvReleaseImage(&src);
	cvDestroyWindow("win");
}

二、opencv 加载播放视频

注意点:1. 视频格式需要转换   支持.avi     可以使用狸窝软件转换

            2.需要安装Xvid解码器。官方网站http://www.xvid.org/  

#include "stdafx.h"
#include "highgui.h"
#include "cv.h"
#include "cxcore.h"

//加载一个avi格式的视频,并且播放
void openAVI(){
	
	cvNamedWindow("avi");
	CvCapture * capture = cvCreateFileCapture("D:\\2.avi");//加载视频的路径
	//CvCapture * capture = cvCreateCameraCapture(-1);//打开摄像头

	IplImage *frame;
	while (1)
	{
		frame = cvQueryFrame(capture);//读取一帧,即:一张图片  frame保存这一帧的信息
		cvShowImage("avi",frame);
		if (!frame)//如果没有读到图像了,就退出
		{
			break;
		}

		char c = cvWaitKey(33);//控制帧率 等待33毫秒
		if (c == 27)//如果按下ESC ,就退出
		{
			break;
		}
	}

	//释放内存
	cvReleaseCapture(&capture);
	cvDestroyWindow("avi"); 
}


你可能感兴趣的:(c,视频,图片,avi)