【08】opencv教程笔记08矩阵维数与通道

//吴锋-优酷-很早的课程-代码可实现

【08矩阵通道与维度】
第一次实验:
#include"stdafx.h"
#include"cv.h"
#include"cxcore.h"
#include"highgui.h"

int main(int argc,char*argv[])//这种方法访问矩阵不是很好,因为调用getRealND要出入站很多次,不适用于大型图片
{
float data[18]=
{30,60,40,60,50,40,
 67,88,55,33,22,97,
 59,69,32,46,25,45
};
CvMat mat;
cvInitMatHeader(&mat,3,6,CV_32FC1,data);//单通道C1 F代表float型,3行6列,第一次是C1,36;第二次是C2,33
for(int y=0;y<mat.rows;y++)//row行
{
 for(int x=0;x<mat.cols;x++)
 {
  float value=cvGetReal2D(&mat,y,x);//real代表单通道,y行x列
 printf("%f ",value);
 }
 printf("\n");//内层列数循环完换行
}
return 0;
}
第二次实验:
#include"stdafx.h"
#include"cv.h"
#include"cxcore.h"
#include"highgui.h"

int main(int argc,char*argv[])//这种方法访问矩阵不是很好
{
float data[18]=
{30,60,40,60,50,40,
 67,88,55,33,22,97,
 59,69,32,46,25,45
};
CvMat mat;
cvInitMatHeader(&mat,3,2,CV_32FC3,data);//单通道C1 F代表float型,3行6列,第一次是C1,36;第二次是C2,33,real也要改变,单通道有real
for(int y=0;y<mat.rows;y++)//row行
{
 for(int x=0;x<mat.cols;x++)
 {
  CvScalar value=cvGet2D(&mat,y,x);//real代表单通道,y行x列;cvscalar是一个4位数组,val【4】,装BGR和alpha
  printf("(%f %f %f)",value.val[0],value.val[1],value.val[2]);
 }
 printf("\n");//内层列数循环完换行
}
return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值