【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");
}
时间: 2024-11-16 14:26:52

【OP001】opencv强大的视频图形图像处理的相关文章

HTML5图形图像处理技术研究

摘要:图形图像处理平台大部分是传统的C/S架构的桌面应用程序,维护困难,共享性差,而B/S架构的Web程序具有易维护.易共享的优点.本文研究了基于HTML5的Web图形图像处理技术,用HTML5实现了一个Web图形图像处理程序,并通过理论分析和实验得出:HTML5在Web图形图像处理上具有优势,存在基于HTML5实现Web处理图形图像的可能性. 关键词:HTML5:Web:Canvas:图形图像处理 引言 传统C/S架构的桌面图形图像处理程序,虽然处理速度较快,但由于界面和算法逻辑都集中在客户端

windows下Python 3.x图形图像处理库PIL的安装

图像处理是一门应用非常广的技术,而拥有非常丰富第三方扩展库的 Python 当然不会错过这一门盛宴.PIL (Python Imaging Library)是 Python 中最常用的图像处理库,目前版本为 1.1.7,我们可以 在这里 下载学习和查找资料. 我安装了好多次都没有安装上,说到底还是野路子学python学的不系统,所以老是出问题.在这里先说几个python中常用必备的几个专业名词:pip:python中安装第三方模块的包管理工具,通过它,我们就能安装编程时常用的模块了.PIL:Py

3D图形图像处理软件HOOPS介绍及下载

HOOPS 3D Application Framework(以下简称HOOPS)是建立在OpenGL.Direct3D等图形编程接口之上的更高级别的应用程序框架.不仅为您提供强大的图形功能,还内嵌了多边形优化和大模型处理等技术,能够大大提高 3D可视化的性能.同时,HOOPS开发包中提供的大量应用程序级的实例源码,帮助您在很短的时间内搭建出商业级的3D图形应用程序. HOOPS 3D Application Framework (HOOPS/3dAF) 3D图形图像处理软件为当今许多主流 3D

OpenCV 播放mkv视频

作者:卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/33371013 一.一个简单的OpenCV程序,用于播放硬盘中的视频文件 #include "opencv\highgui.h" int main() { cvNamedWindow("生活大爆炸.mkv",CV_WINDOW_AUTOSIZE); CvCapture* capture = cvCreateFileCapture("生活大

共有31款PHP 图形/图像处理开源软件(转)

详情点击:http://www.oschina.net/project/lang/22/php?tag=141&os=0&sort=view PHP 图像处理库 Grafika Grafika 是一个 PHP 的图像处理库.可用于改变图像大小.剪切.比较,以及添加水印等操作.同时可以创建一些文本图片.几何图形并应用一些过滤器.基于 Imagick 和 GD 构建. 特征 智能裁剪 图像比较 感知哈希 高级图像处理过滤器 贝塞尔曲线 示例代码: ...更多Grafika信息 最近更新:Gra

[转]C&C++图形图像处理开源库

本文章已收录于: .embody { padding: 10px 10px 10px; margin: 0 -20px; border-bottom: solid 1px #ededed } .embody_b { margin: 0; padding: 10px 0 } .embody .embody_t,.embody .embody_c { display: inline-block; margin-right: 10px } .embody_t { font-size: 12px; co

使用opencv进行多路视频的播放

在监控领域,我们时常需要对多路视频进行实时的播放,这到底是怎么实现的呢?使用opencv的朋友可能会想:我可以先定义一个VideoCapture的数组,然后在一个for循环中,逐一读取各路视频并显示,但是这显然不是同步的,设想一下,如果有32路视频需要同时播放,而一般摄像机的帧率为25fps或30fps,那么按上述方法进行播放,第一路与第三十二路视频的延迟会有1秒多,如果我们需要在其间做一些图像处理,那么延迟将会更大. 有过多线程编程或多核编程经验的朋友会觉得这个问题很好解决,这就是一个简单的并

OpenCV与MFC通用型图像处理开发实践

imagehandler 该程序的起源说来话长,它起源自上课的一次作业,后来又由于接触了OpenCV这个开源库,我就试图将OpenCV和MFC搓到一块,毕竟微软近来在界面上也下了狠功夫,尤其是Windows 7大获成功,而WP7.5和Windows 8跃跃欲试.结合Windows桌面也不失为一个有益的尝试. 关于imagehandler 本程序是在 MFC 中使用 OpenCV 处理图像的演示程序,由2部分组成. 背景知识: OpenCV是Intel?开源计算机视觉库.它由一系列 C 函数和少量

基于opencv下对视频的灰度变换,高斯滤波,canny边缘检测处理,同窗体显示并保存

如题:使用opencv打开摄像头或视频文件,实时显示原始视频,将视频每一帧依次做灰度转换.高斯滤波.canny边缘检测处理(原始视频和这3个中间步骤处理结果分别在一个窗口显示),最后将边缘检测结果保存为一个视频avi文件. 这里问题综合性比较大,这里进行分治. 该类问题可分为四个方面的处理: (1)打开 视频或者是摄像头,并播放视频 (2)对视频的每一帧做处理 (3)同窗体显示四个结果 (4)保存视频文件 以下分为这三个方面进行处理: (1)打开 视频或者摄像头,并播放视频 这个利用opencv