您的位置:首页 > 运维架构

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: