openCV 图像和矩阵的创建和访问
2013-08-20 11:14
387 查看
cvArr
cvMat 创建 五种方式,只分配具体空间,并没有付具体的值。
1, CvMat* cvCreateMat(int rows,int cols,int type);(分配内存,没有数据,包括文件头和文件体)
只创建文件头,不分配数据区的内存
2,CvMat* cvCreateMatHeader(int rows,int cols,int type);
3, CvMat* cvInitMatHeader(
cvMat* mat,
int rows,
int cols,
int type,
void* data = NULL,
int step = CV_AUTOSTEP)
4,构造函数 CvMat cvMat()
5,复制函数 CvMat* cvCloneMat()
矩阵赋值
loat vals[] = {};
CvMat mat;
CvMat* cvInitMatHeader(&mat,2,2,CV_32FC1,vals);
矩阵访问:
常用方式:
for(y=0;y<mat_1Chanel.rows;y++)
{
float* pp_float = (float*)(mat_1Chanel.data.ptr + y*mat_1Chanel.step);
for(x=0;x<mat_1Chanel.cols;x++)
{
float ptr = *pp_float++ ;
printf("%f",ptr);
}
}
另有函数
cvPtrND;cvGetND;cvGetRealDN;cvSetND;cvSetRealND;cvmGet;cvmSet;
图像创建,赋值与矩阵相似
图像的访问:
IplImage img = cvCreateImage(cvSize(30,60),8,1);
for(int y =0, y<img->height,y++)
{
uchar* ptr = (uchar*)(img->imageData + y*img->widthStep);
}
for(int x = 0,x<img->width,x++)
{
ptr[3*x + 1] = 255;
ptr[3*x + 2] = 255;
}
注意几个难点:
1, 图像的维度和通道的计算;
2,cvScalar在多通道中的使用;
3,图像的widthstep的使用
4,偏移量的计算memset(包括字节和通道)
cvMat 创建 五种方式,只分配具体空间,并没有付具体的值。
1, CvMat* cvCreateMat(int rows,int cols,int type);(分配内存,没有数据,包括文件头和文件体)
只创建文件头,不分配数据区的内存
2,CvMat* cvCreateMatHeader(int rows,int cols,int type);
3, CvMat* cvInitMatHeader(
cvMat* mat,
int rows,
int cols,
int type,
void* data = NULL,
int step = CV_AUTOSTEP)
4,构造函数 CvMat cvMat()
5,复制函数 CvMat* cvCloneMat()
矩阵赋值
loat vals[] = {};
CvMat mat;
CvMat* cvInitMatHeader(&mat,2,2,CV_32FC1,vals);
矩阵访问:
常用方式:
for(y=0;y<mat_1Chanel.rows;y++)
{
float* pp_float = (float*)(mat_1Chanel.data.ptr + y*mat_1Chanel.step);
for(x=0;x<mat_1Chanel.cols;x++)
{
float ptr = *pp_float++ ;
printf("%f",ptr);
}
}
另有函数
cvPtrND;cvGetND;cvGetRealDN;cvSetND;cvSetRealND;cvmGet;cvmSet;
图像创建,赋值与矩阵相似
图像的访问:
IplImage img = cvCreateImage(cvSize(30,60),8,1);
for(int y =0, y<img->height,y++)
{
uchar* ptr = (uchar*)(img->imageData + y*img->widthStep);
}
for(int x = 0,x<img->width,x++)
{
ptr[3*x + 1] = 255;
ptr[3*x + 2] = 255;
}
注意几个难点:
1, 图像的维度和通道的计算;
2,cvScalar在多通道中的使用;
3,图像的widthstep的使用
4,偏移量的计算memset(包括字节和通道)
相关文章推荐
- opencv中CvMat结构与矩阵的创建与访问
- 用固定数据创建一个Opencv矩阵并访问其数据元素
- OpenCV--用读取矩阵,访问图像数据
- OpenCV 基础知识------图像创建、访问、转换
- 学习opencv第三章 基本数据类型 ,矩阵创建,操作,访问
- opencv 使用Mat 矩阵进行图像的降采样,像素的访问方式
- 【OpenCV入门教程之六】 创建Trackbar & 图像对比度、亮度值调整
- OpenCV Python教程(2、图像元素的访问、通道分离与合并)
- OpenCV 编程简介(矩阵/图像/视频的基本读写操作)
- OpenCV学习:Mat矩阵合并两张图像
- opencv OpenCV访问图像像素, 数组元素等方法收集
- Opencv图像识别从零到精通(6)----访问图像像素
- python OpenCV 图像像素访问 (三)
- opencv 访问图像像素的三种方式
- 【OpenCV】访问Mat图像中每个像素的值
- OpenCV中矩阵数据的访问(一)(Learning OpenCV第三章2)
- OpenCV之core 模块. 核心功能(1)Mat - 基本图像容器 OpenCV如何扫描图像、利用查找表和计时 矩阵的掩码操作 使用OpenCV对两幅图像求和(求混合(blending))
- openCV 矩阵(图像)操作函数
- openCV中的矩阵创建和释放
- 【OpenCV入门教程之六】 创建Trackbar & 图像对比度、亮度值调整