OpenCv函数学习(一)

Intel Image Processing Library (IPL)

 1 typedef struct _IplImage
 2 {
 3 int nSize; /* IplImage大小 */
 4 int ID; /* 版本 (=0)*/
 5 int nChannels; /* 大多数OPENCV函数支持1,2,3 或 4 个通道 */
 6 int alphaChannel; /* 被OpenCV忽略 */
 7 int depth; /* 像素的位深度,主要有以下支持格式: IPL_DEPTH_8U, IPL_DEPTH_8S, IPL_DEPTH_16U,IPL_DEPTH_16S, IPL_DEPTH_32S,
 8 IPL_DEPTH_32F 和IPL_DEPTH_64F */
 9 char colorModel[4]; /* 被OpenCV忽略 */
10 char channelSeq[4]; /* 同上 */
11 int dataOrder; /* 0 - 交叉存取颜色通道, 1 - 分开的颜色通道. cvCreateImage只可以创建交叉存取图像 */
13 int origin; /*图像原点位置: 0表示顶-左结构,1表示底-左结构 */
14 int align; /* 图像行排列方式 (4 or 8),在 OpenCV 被忽略,使用 widthStep 代替 */
15 int width; /* 图像宽像素数 */
16 int height; /* 图像高像素数*/
17 struct _IplROI *roi; /* 图像感兴趣区域,当该值非空时,只对该区域进行处理 */
19 struct _IplImage *maskROI; /* 在 OpenCV中必须为NULL */
20 void *imageId; /* 同上*/
21 struct _IplTileInfo *tileInfo; /*同上*/
22 int imageSize; /* 图像数据大小(在交叉存取格式下ImageSize=image->height*image->widthStep),单位字节*/
23 char *imageData; /* 指向排列的图像数据 */
24 int widthStep; /* 排列的图像行大小,以字节为单位 */
25 int BorderMode[4]; /* 边际结束模式, 在 OpenCV 被忽略*/
26 int BorderConst[4]; /* 同上 */
27 char *imageDataOrigin; /* 指针指向一个不同的图像数据结构(不是必须排列的),是为了纠正图像内存分配准备的 */
28 } IplImage;

位深度

在记录数字图像的颜色时,计算机实际上是用每个像素需要的位深度来表示的。黑白二色的图像是数字图像中最简单的一种,它只有黑、白两种颜色,也就是说它的每个像素只有1位颜色,位深度是1,用2的一次幂来表示;考虑到位深度平均分给R, G, B和Alpha,而只有RGB可以相互组合成颜色。所以4位颜色的图,它的位深度是4,只有2的4次幂种颜色,即16种颜色或16种灰度等级 ) 。8位颜色的图,位深度就是8,用2的8次幂表示,它含有256种颜色 ( 或256种灰度等级 )。24位颜色可称之为真彩色,位深度是24,它能组合成2的24次幂种颜色,即:16777216种颜色 ( 或称千万种颜色 ),超过了人眼能够分辨的颜色数量。当我们用24位来记录颜色时,实际上是以2^(8×3),即红、绿、蓝 ( RGB ) 三基色各以2的8次幂,256种颜色而存在的,三色组合就形成一千六百万种颜色。

CvLoadImage

IplImage* CvLoadImage(const char *cFileName, int flags)

CvLoadImage(cFileName, -1); // 默认读取图像的原通道数

CvLoadImage(cFileName, 0);  // 强制转化读取图像为灰度图

CvLoadImage(cFileName, 1);  // 读取彩色图

CvCloneImage

IplImage* CvCloneImage(const IplImage *p)

在使用函数之前,不用特地开辟内存,即该函数会自己开一段内存,然后复制好image里面的数据,然后把这段内存中的数据返回.

CreateCvImage

IplImage* cvCreateImage(CvSize size, int depth, int channels)

作用申请一个图片结构大小的内存,比如创建灰色图像

IplImage *pGraycvImage = cvCreateImage(cvGetSize(pSrc_Image), 8, 1);

cvCvtColor(pSrc_Image,pGraycvImage ,CV_BGR2GRAY);

时间: 2024-10-02 14:16:22

OpenCv函数学习(一)的相关文章

5. openCV中常用函数学习

一.前言 经过两个星期的努力,一边学习,一边写代码,初步完成的毕业论文系统的界面和一些基本功能,主要包括:1 数据的读写和显示,及相关的基本操作(放大.缩小和移动):2 样本数据的选择:3 数据归一化处理:4 绘制光谱曲线:5 获取波段信息.接下来的工作主要是完成遥感影像分类的相关算法.这部分主要是数学计算,尤其是矩阵的相关运算和操作.为此,系统的学习和了解了openCV库中常用的矩阵操作函数,记录下来,方便以后查阅. 二.openCV函数 1 reshape 1 C++: Mat Mat::r

OpenCV示例学习笔记(1)-contours2.cpp-通过findContours 函数实现轮廓提取

这个系列的目的是通过对OpenCV示例,进一步了解OpenCV函数的使用,不涉及具体原理. 示例代码地址:http://docs.opencv.org/3.0.0/examples.html(安装openCV时可框选) 目录 简介 Example运行截图 Example分析 Example代码 简介 本文记录了对OpenCV示例contours2.cpp的分析. 资料地址:http://docs.opencv.org/3.0.0/d0/d2a/contours2_8cpp-example.htm

OpenCV2学习笔记(十五):利用Cmake高速查找OpenCV函数源代码

在使用OpenCV时,在对一个函数的调用不是非常了解的情况下,通常希望查到该函数的官方声明.而假设想进一步研究OpenCV的函数,则必须深入到源码. 在VS中我们能够选中想要查看的OpenCV函数,点击右键-> 转到定义.我们能够非常清楚地了解到函数的简单声明,可是并没有给出源码. 这是由于openCV将非常多函数被增加了函数库,并被编译成了dll.所以仅仅能看到函数申明,没法看到源码. 第一个方法:在官网下载OpenCV后须要解压缩,完毕后能够找到OpenCV的解压文件夹打开,在source/

Dlib+OpenCV深度学习人脸识别

目录(?)[+] DlibOpenCV深度学习人脸识别 前言 人脸数据库导入 人脸检测 人脸识别 异常处理 Dlib+OpenCV深度学习人脸识别 前言 人脸识别在LWF(Labeled Faces in the Wild)数据集上人脸识别率现在已经99.7%以上,这个识别率确实非常高了,但是真实的环境中的准确率有多少呢?我没有这方面的数据,但是可以确信的是真实环境中的识别率并没有那么乐观.现在虽然有一些商业应用如员工人脸识别管理系统.海关身份验证系统.甚至是银行人脸识别功能,但是我们可以仔细想

OpenCV的学习笔记

整理了我所了解的有关OpenCV的学习笔记.原理分析.使用例程等相关的博文.排序不分先后,随机整理的.如果有好的资源,也欢迎介绍和分享. 1:OpenCV学习笔记 作者:CSDN 数量:55篇博文 网址:http://blog.csdn.net/column/details/opencv-manual.html 2:部分OpenCV的函数解读和原理解读 作者:梦想腾飞 数量:20篇博文 网址:http://blog.csdn.net/xidianzhimeng/article/category/

http_build_query函数(学习)

http_build_query函数 http_build_query -- 生成 url-encoded 之后的请求字符串 描述string http_build_query ( array formdata [, string numeric_prefix]) 根据数组产生一个urlencode之后的请求字符串,如果在基础数组中使用了数字下标同时给出了 numeric_prefix 参数. <?php $data = array('foo'=>'bar',               'b

opencv2函数学习之erode、dilate:图像腐蚀和膨胀

图像腐蚀和图像膨胀是图像中两种最基本形态学操作. void erode( const Mat& src, Mat& dst, const Mat& element,Point anchor=Point(-1,-1), int iterations=1,int borderType=BORDER_CONSTANT, const Scalar& borderValue=morphologyDefaultBorderValue() ); void dilate( const Ma

常用的OpenCV函数速查

常用的OpenCV函数速查 1.cvLoadImage:将图像文件加载至内存: 2.cvNamedWindow:在屏幕上创建一个窗口: 3.cvShowImage:在一个已创建好的窗口中显示图像: 4.cvWaitKey:使程序暂停,等待用户触发一个按键操作: 5.cvReleaseImage:释放图像文件所分配的内存: 6.cvDestroyWindow:销毁显示图像文件的窗口: 7.cvCreateFileCapture:通过参数设置确定要读入的AVI文件: 8.cvQueryFrame:用

[转] matlab调用opencv函数的配置

原文地址百度账户 aleasa123 1.  首先保证vs2010能正确调用opencv函数, 2.  Matlab中选择编译器,操作如下: 打开matlab2012,输入mex –setup,出现如下提示: Welcome to mex -setup. This utility will help you set up a default compiler. For a list of supported compilers, see http://www.mathworks.com/supp