OpenCV cvmat结构 赋值 和 type 数据类型探讨 课后题3-2
2012-03-10 16:31
239 查看
#include "stdafx.h"
#include "highgui.h"
//所有的以新风格命名的函数都在 cv 命名空间中
//如果希望不要每次都输入 cv:: ,则可使用下面语句
using namespace cv;
int _tmain(int argc, _TCHAR* argv[])
{
//200*200的矩阵,在中心画一个圆.
int values[30000]; // 200*200的CV_8UC3图像需要12000字节 = 3000个int
char values3[120000];//200*200的CV_8UC3图像需要12000字节 =120000个char
float values2[40000];
for (int i =0;i<30000;i++) {values[i] = 100;}
for (int i =0;i<40000;i++) {values2[i] = 100.0;} //给char数组全部赋值为0
//用CV_8UC3 把来values中的数值解释成颜色,但values以原结构在内存中.
CvMat mat;
CvMat* mat_ptr = &mat; // 指针声明的时候一定要初始化
cvInitMatHeader(mat_ptr, 200, 200, CV_8UC3, values); //在定义了矩阵数据类型以后,value仍以原结构在内存中
cvCircle(mat_ptr,cvPoint(100,100), 100, cvScalar(255,255,255));
//用浮点数CV_32FC1 来定义矩阵颜色, 单通道是灰度图像
CvMat mat2;
CvMat* mat_ptr2 = &mat2; // 指针声明的时候一定要初始化
cvInitMatHeader(mat_ptr2, 200, 200, CV_32FC1, values2); //在
cvCircle(mat_ptr2,cvPoint(100,100), 100, cvScalar(0,0,0));
//显示两个图像.
cvNamedWindow("charpter2-2");
cvShowImage("charpter2-2",mat_ptr);
cvNamedWindow("charpter2-2_2");
cvShowImage("charpter2-2_2",mat_ptr2);
cvWaitKey();
cvDestroyWindow("charpter2-2");
cvDestroyWindow("charpter2-2_2");
return 0;
}
#include "highgui.h"
//所有的以新风格命名的函数都在 cv 命名空间中
//如果希望不要每次都输入 cv:: ,则可使用下面语句
using namespace cv;
int _tmain(int argc, _TCHAR* argv[])
{
//200*200的矩阵,在中心画一个圆.
int values[30000]; // 200*200的CV_8UC3图像需要12000字节 = 3000个int
char values3[120000];//200*200的CV_8UC3图像需要12000字节 =120000个char
float values2[40000];
for (int i =0;i<30000;i++) {values[i] = 100;}
for (int i =0;i<40000;i++) {values2[i] = 100.0;} //给char数组全部赋值为0
//用CV_8UC3 把来values中的数值解释成颜色,但values以原结构在内存中.
CvMat mat;
CvMat* mat_ptr = &mat; // 指针声明的时候一定要初始化
cvInitMatHeader(mat_ptr, 200, 200, CV_8UC3, values); //在定义了矩阵数据类型以后,value仍以原结构在内存中
cvCircle(mat_ptr,cvPoint(100,100), 100, cvScalar(255,255,255));
//用浮点数CV_32FC1 来定义矩阵颜色, 单通道是灰度图像
CvMat mat2;
CvMat* mat_ptr2 = &mat2; // 指针声明的时候一定要初始化
cvInitMatHeader(mat_ptr2, 200, 200, CV_32FC1, values2); //在
cvCircle(mat_ptr2,cvPoint(100,100), 100, cvScalar(0,0,0));
//显示两个图像.
cvNamedWindow("charpter2-2");
cvShowImage("charpter2-2",mat_ptr);
cvNamedWindow("charpter2-2_2");
cvShowImage("charpter2-2_2",mat_ptr2);
cvWaitKey();
cvDestroyWindow("charpter2-2");
cvDestroyWindow("charpter2-2_2");
return 0;
}
相关文章推荐
- opencv 数据类型转换:CvArr, Mat, CvMat, IplImage, BYTE
- openCV的数据类型及结构
- OpenCV中Mat与IplImage和CvMat数据类型间的相互转换
- opencv学习_16(CvMat矩阵结构以及矩阵数据访问)
- OpenCV 中的三大数据类型:CvMat 类型
- OpenCV学习(八)之OpenCV中IplImage和CvMat图像数据结构
- opencv之Mat数据类型和ImlImage数据类型以及CvMat数据类型得转换
- opencv 数据类型转换:CvArr, Mat, CvMat, IplImage, BYTE 转
- opencv学习笔记(七)-CvMat矩阵结构以及矩阵数据访问
- OpenCV系统学习:一、OpenCV结构、基本数据类型
- opencv学习笔记[9]:Opencv的基本数据类型和矩阵结构
- 获取Oracle表结构时,两种OleDb驱动得到的列数据类型“DATA_TYPE”值的类型不同
- OpenCV中Mat与IplImage和CvMat数据类型间的相互转换
- opencv-CvMat矩阵结构以及矩阵数据访问
- opencv cvMat数据类型
- opencv学习笔记[9]:Opencv的基本数据类型和矩阵结构
- OpenCV数据类型的声明和使用
- MyBatis 通过包含的jdbcType类型和java中对应的数据类型
- mybatis常用jdbcType数据类型
- MyBatis JdbcType 与Oracle、MySql数据类型对应关系详解