OpenCV cvmat结构 赋值 和 type 数据类型探讨 课后题3-2

#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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值