OpenCV——IplImage

IplImage结构:

 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 - 分开的颜色通道.
12 cvCreateImage只可以创建交叉存取图像 */
13 int origin; /*图像原点位置: 0表示顶-左结构,1表示底-左结构 */
14 int align; /* 图像行排列方式 (4 or 8),在 OpenCV 被忽略,使用 widthStep 代替 */
15 int width; /* 图像宽像素数 */
16 int height; /* 图像高像素数*/
17 struct _IplROI *roi; /* 图像感兴趣区域,当该值非空时,
18 只对该区域进行处理 */
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 //图像载入函数
 2 IplImage* cvLoadImage( const char* filename, int iscolor);
 3 /*iscolor是一个辅助参数项,可选正数、零和负数三种值,正数表示作为三通道图像载入,零表示该图像作为单通道图像,负数表示载入图像的通道数由图像文件自身决定。
 4 */
 5
 6 //窗口定义函数
 7 int cvNamedWindow( const char* name, unsigned long flags );
 8 /*flags是窗口属性指标值,可以选择CV_WINDOW_AUTOSIZE和0两种值。CV_WINDOW_AUTOSIZE表示窗口尺寸与图像原始尺寸相同,0表示以固定的窗口尺寸显示图像
 9 */
10
11 // 图像显示函数
12 void cvShowImage( const char* name, const CvArr* image );
13 //image是图像类型指针,一般是IplImage指针。
14
15 //图像保存函数
16 int cvSaveImage( const char* filename, const CvArr* image );
17
18 // 图像销毁函数
19 void cvReleaseImage( IplImage** image );
20
21 // 图像转换函数
22 cvGetImage( const CvArr* arr, IplImage* image_header )
时间: 2024-11-11 14:09:08

OpenCV——IplImage的相关文章

FlyCapture2 fc2Image OpenCV IplImage Conversion 两种图像格式之间的转换

fc2Image是FlyCapture SDK的C语言库中的图片格式,由于在Windows上的MinGW无法编译FlyCapture2的C++库,只能使用C语言库,所以当我们在同时使用OpenCV的图像格式IplImage时,有时候就需要两种格式相互转换.如果需要FlyCapture2 Image和OpenCV IplImage之间的转换,可以参见我之前的博客OpenCV IplImage FlyCapture2 Image Conversion 两种图像类的相互转化.我们先来分别看看两种图像格

opencv Iplimage结构简介

IplImage 结构解读: typedef struct _IplImage{int nSize;                    /* IplImage大小 */int ID;                         /* 版本 (=0)*/int nChannels;           /* 大多数OPENCV函数支持1,2,3 或 4 个通道 */int alphaChannel; /* 被OpenCV忽略 */int depth; /* 像素的位深度: IPL_DEPT

[OpenCV] IplImage and Functions

In this chapter, APIs will make U crazy. Good luck! "modules/core/include/opencv2/core/types_c.h" typedef struct _IplImage { int nSize; /* sizeof(IplImage) */ int ID; /* version (=0)*/ int nChannels; /* Most of OpenCV functions support 1,2,3 or

opencv——IplImage结构

一.作业要求: 采用MATLAB或opencv+C编程实现.每一题写明题目,给出试验程序代码,实验结果图片命名区分并作出效果比对,最后实验总结说明每一题蕴含的图像处理方法的效果以及应用场合等. 采用MATLAB编程比采用opencv+C编程得分低:如果MATLAB或opencv+C只在读入图片时采用自带函数(算法核心部分自己独立编程)的,得分高. 二.实验题目: 1. 把一幅灰度图像的垂直分辨率和水平分辨率都变为原来的一半,生成一副新的图像. IplImage 由于OpenCV主要针对的是计算机

YV12转opencv IplImage

<pre name="code" class="cpp"> int bet(int min, int max, int val) { if (val > max) return max; else if (val < min) return min; else return val; } void Yv12ToImg(uchar *pin, IplImage* img) { uchar y, cb, cr; int ySize = img-&

OpenNI1.5获取华硕XtionProLive深度图和彩色图并用OpenCV显示

华硕XtionPro类似Kinect,都是体感摄像机,可捕捉深度图和彩色图, 详细参数见:http://www.asus.com.cn/Multimedia/Xtion_PRO_LIVE/specifications/ 实验设定的深度图和彩色图大小都是640*480,如下: 彩色图 未配准时的深度图 配准到彩色图后的深度图 深度图配准到彩色图后的1:1融合图 彩色图配准到深度图后的1:1融合图 代码: #include <stdlib.h> #include <iostream>

【OpenCv】OpenCv原始版本与新版本(2.4.10)的一个简单对比

老版本中使用IplImage指针数据类型,需要手工的分配与释放,比较麻烦. 新版本中直接使用Mat数据结构,避免了这种缺点. 没什么技术含量,废话不多说,直接看代码中的注释. #include <stdio.h> /* 原始版本头文件 #include <opencv\cv.h> #include <opencv\cxcore.h> #include <opencv\highgui.h> */ //新版本(2.4.10)头文件 #include <op

总结一些机器视觉库

通用库/General Library OpenCV   无需多言. RAVL  Recognition And Vision Library. 线程安全.强大的IO机制.包含AAM. CImg  很酷的一个图像处理包.整个库只有一个头文件.包含一个基于PDE的光流算法. 图像,视频IO/Image, Video IO FreeImage DevIL ImageMagick FFMPEG VideoInput portVideo AR相关/Augmented Reality ARToolKit 

Canny边缘检测算法原理及C语言实现详解(原创码字)

Canny算子是John Canny在1986年提出的,那年老大爷才28岁,该文章发表在PAMI顶级期刊上的(1986. A computational approach to edge detection. IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 8, 1986, pp. 679-698).老大爷目前在加州伯克利做machine learning,80-90年代视觉都是图像处理,现在做视觉都是机器