nullnullOpenCv是什么?OpenCv是什么?OpenCV——Open Source Computer Vision Library。
OpenCv是Intel公司资助开发的一个开源免费的计算机视觉库。它由一系列C函数和少量C++函数构成,实现了图像处理和计算机视觉方面的很多通用算法。为什么会有OpenCv?为什么会有OpenCv?目前生成计算机视觉的应用软件主要有以下三种方式:
研究源代码。这种方式的缺点是:进度慢、不稳定,而且与其他库或工具数据类型上不兼容。
使用非常昂贵的商业开发工具。比如Halcon与Matlab + Simulink等
一些依赖于硬件的特殊解决
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
。如视频监控设备、工业控制系统、医疗设备等。OpenCv的三大目标OpenCv的三大目标为基本的视觉应用提供开放且优化的源代码,以促进视觉研究的发展,能有效的避免“闭门造车”。
通过提供一个通用的架构来传播视觉知识。开发者可以在这个架构上继续开展工作,所以代码应该是非常易读的且可改写的。
本库采用的
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
要求商业产品继续开放代码,这使得可移植、性能被优化的代码可以自由获取,可以促进基于视觉的商业应用的发展。
OpenCv主要特征OpenCv主要特征开源计算机视觉库采用C/C++编写。
使用目的是开发实时应用程序。
独立于操作系统、硬件和图形管理器。
具有通用的图像/视频载入、保存和获取模块。
具有底层和高层的应用开发包。
OpenCv的应用领域OpenCv的应用领域网络视频监控。
游戏界面。
航空和街道地图。
安全监控。
相关医学分析。
工业控制检测。
OpenCv主要模块OpenCv主要模块OpenCv的学习资源OpenCv的学习资源中文网址:http://www.opencv.org.cn
英文网址:http://opencv.org。
最新版本:2012年11月2日:OpenCV 2.4.3正式发布
学习书籍:《Learning OpenCV》、《Mastering OpenCV with Practical Computer Vision Projects 》
《OpenCV教程-基础篇》OpenCv的安装OpenCv的安装http://www.opencv.org.cnOpenCv命名规则OpenCv命名规则函数命名规则:cvActionTargetMod(…)
Action
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示核心函数(如:Set,Create等)。
Target表示目标区域(比如:轮廓,多边形等)。
Mod表示可选变种(比如:变量类型)。
矩阵数据类型:
CV_
(S|U|F)C
S表示带符号整数。
U表示无符号整数。
F表示浮点数。
例如:CV_32FC2表示32位浮点数双通道矩阵。
OpenCv命名规则OpenCv命名规则图像数据类型:
IPL_DEPTH_(S|U|F)
S表示带符号整数。
U表示无符号整数。
F表示浮点数。
例如:IPL_DEPTH_8U表示8位无符号整数图像。
OpenCv命名规则OpenCv命名规则图像数据类型:
IPL_DEPTH_(S|U|F)
S表示带符号整数。
U表示无符号整数。
F表示浮点数。
例如:IPL_DEPTH_8U表示8位无符号整数图像。
OpenCv图像数据结构OpenCv图像数据结构细说HighGUI细说HighGUIOpenCv的HighGUI可以让我们方便地打开窗口、显示图像、读出或者写入图像相关的文件(包含图像和视频)、处理简单的鼠标、光标和键盘事件。
HighGUI分为三大部分:硬件相关部分、文件部分以及图形用户界面部分。
细说HighGUI细说HighGUI硬件相关部分:HighGUI提供了一种从摄像机中获取图像的简单办法,所有繁琐的工作都在HighGUI内部完成。
文件系统部分:HighGUI为我们提供了一对函数来读入与保存图像,这两个函数根据文件名的后缀,自动完成所有的编码和解码工作。
图形用户界面部分:HighGUI提供了一些简单的函数来打开窗口以及将图像显示在窗口中。
细说HighGUI—创建窗口细说HighGUI—创建窗口函数名 cvNameWindow()
参数一:const char* name //创建的窗口名字
参数二:int flags=CV_WINDOWS_AUTOSIZE
有效值为0或默认设置。当为0时,用户可以随意调整窗口大小;当为默认值时,HighGUI根据图像大小调整窗口大小。
返回值:int
销毁函数:cvDestroyWindow(const char* name)
细说HighGUI—调整窗口大小细说HighGUI—调整窗口大小函数名 cvResizeWindow()
参数一:const char* name //创建的窗口名字
参数二:int width //调整的窗口宽度
参数三:int height //调整的窗口高度
返回值:void
细说HighGUI—载入图像细说HighGUI—载入图像函数名 cvLoadImage()
参数一:const char* filename //打开的文件名
参数二:int iscolor=CV_LOAD_IMAGE_COLOR
读入彩色图像:CV_LOAD_IMAGE_COLOR
读入灰度图像:CV_LOAD_IMAGE_GRAYSCALE
返回值:IplImage*
说明:当函数载入图像失败时,返回一个空指针。
细说HighGUI—保存图像细说HighGUI—保存图像函数名 cvSaveImage()
参数一:const char* filename //保存的图像文件名
参数二:const CvArr* image //要存储的图像数据
返回值:int
说明:当函数保存图像失败时,返回0。
细说HighGUI—显示图像细说HighGUI—显示图像函数名 cvShowImage()
参数一:const char* name //显示的图像窗口名
参数二:const CvArr* image //显示的图像
返回值:void
细说HighGUI—示例程序细说HighGUI—示例程序#include
#include
int main()
{
cvNameWindow(“Example Demo”); //创建一个命名的窗口
IplImage* img=cvLoadImage(“E:\\image\\test.jpg”); //载入图像
cvShowImage(“Example Demo”,img); //显示图像
while(1)
{
if(cvWaitKey(100)==27) //opencv等待用户的键盘触发事件100ms,如果有 //用户触发则继续循环;如果有用户触发了Esc键 //则退出循环
break; }
cvDestroyWindow(“Example Demo”); //销毁窗口
cvReleaseImage(&img); //销毁图像
}图像处理—轮廓(Contour)检测示例图像处理—轮廓(Contour)检测示例如何快速检测轮廓的外边缘和内边缘?图像处理—轮廓(Contour)检测示例图像处理—轮廓(Contour)检测示例函数名 cvFindContours()
参数一:IplImage* image //8位单通道二值图像
参数二:CvMemStorage* storage //内存存储器:找到的轮廓记录在此内存里。
参数三:CvSeq** firstContour //传入一个序列指针指向轮廓的首地址。
参数四:int headSize=sizeof(CvContour) //告速函数有关对象分配的信息。
参数五:CvContourRetrivalMode mode=CV_RETR_LIST //指定轮廓类型
参数六:CvChainApproxMethod method=CV_CHAIN_APPROX_SIMPLE
指定计算方法。
图像处理—轮廓(Contour)检测示例图像处理—轮廓(Contour)检测示例轮廓检测结果示例源程序见:contour.cnull