opencv(c++)笔记1 (Mat 常用成员函数)

Mat::eye 斜对角矩阵

Mat::eye(int rows,int cols,int type)
Mat::eye(Size size,int type)
//参数
//rows 行
//cols 列
//size (行,列)使用:3x3的矩阵cv::Size size(3,3);
//type 矩阵数据类型为整形

Mat::create 重新分配矩阵数据

Mat::create(int rows,int cols,int type)
Mat::create(Size size,int type)
Mat::create(int ndims,const int* sizes,int type)
//参数说明
//rows 行
//cols	列
//type 类型
//size (行列
//ndims 矩阵维数
//sizes 2维数组,定义矩阵行列a[2]={3,4}

Mat::resize(size_t sz) 更改矩阵行数

Mat::resize(size_t sz) 
//参数说明
//sz行数

Mat::reshape()更改矩阵行数

Mat::reshape(int cn,int rows=0)
//cn 通道个数,0表示不变
//rows 行数数 ,0表示不变

Mat::push_back() 在下方拼接矩阵

Mat::push_back(cv::Mat a) 
//拼接在下方的矩阵,列数一样

cv::Rect()矩形

cv::Rect(x,y,w,h)
//x,y左上角位置坐标
//w宽,h高
方法
.area()		//求面积
.width()	//求宽度
.height()	//求高度
.tl()		//左上角
.br()		//右下角

cv::RotatedRect()矩形

cv::RotatedRect rr(p,sz,theta)
//p x,y坐标
//sz 行,列
//theta 角度
cv::RotatedRect( p1, p2 )
//p1 左上角坐标
//p2 右上角坐标

其他

Mat::at(i,j)	//引用数组元素
Mat::empty() 	//判断矩阵是否为空
Mat::ptr(i)		//返回第i行的指针
n=Mat::channels //返回矩阵通道个数
Mat::total()	//矩阵元素总数
Mat::pop_back(i)//从底部删除i行数据 

类型转换

cvtColor(src,grey,CV_BGR2GRAY);
//转换图像格式,src 源文件 grey目标文件 CV_BGR2GRAY目标文件图像格式

求取特征值和特征多项式

	int bz[2]={3,3};
	double data[3][3]={1,0,1,0,1,0,0,0,1};
	cv::Mat b(2,bz,CV_64FC1,data);
	Mat eval_lambda;
	Mat eval_LambdaMat;
	cout<<"b"<<b<<endl;
	// std::cout << "image.cols"<< image.cols<< std::endl;
	// std::cout << "image.rows"<< image.rows<< std::endl;
	//waitKey();
	eigen(b,eval_lambda,eval_LambdaMat);//计算特征向量
	cout<<"eval_lambda"<<eval_lambda<<endl;
	cout<<"eval_LambdaMat"<<eval_LambdaMat<<endl;

求取和

Scalar all=sum(b.col(0));//返回4个通道值

通道


Mat aChannels[3];
split(c,aChannels);//分离通道
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值