Opencv Mat操作大全

#include<opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main()
{
	float array[]={1,2,3};
	float array1[]={2,3,1};
	//用数组初始化Mat
	Mat mat=Mat(1,3,CV_32F,array);
	Mat mat1=Mat(1,3,CV_32F,array1);
	Mat tempmat;
	//对mat拷贝
	mat.copyTo(tempmat);
	cout<<tempmat<<endl;
	//选择roi,rect的四个参数分别是(x,y)坐标,第三个参数是宽度,第四个参数是高度
	Mat roi(mat,Rect(0,0,2,1));
	cout<<roi<<endl;
	//mat-mat1的1范数
	cout<<norm(mat,mat1,CV_L1)<<endl;
	//mat-mat1的2范数
	cout<<norm(mat,mat1,CV_L2)<<endl;
	//打印mat的内容
	cout<<mat<<endl;
	//创建对角为1的矩阵
	Mat eyemat=Mat::eye(4,4,CV_8U);
	cout<<eyemat<<endl;
    //提取eyemat的1-2行,3-4列
	Mat submat=eyemat(Range(0,2),Range(2,4));
	cout<<submat<<endl;
	//abs(),max(),min(),+,-,*,/等操作很简单,就不写了
	float a[2][2]={2,3,1,2};
	float b[2][2]={2,1,0,-1};
	Mat amat(2,2,CV_32F,a);
	Mat bmat(2,2,CV_32F,b);
	cout<<amat<<endl;
	cout<<bmat<<endl;
	//求amat的逆
	cout<<amat.inv()<<endl;
	//两矩阵相乘
	cout<<amat.mul(bmat)<<endl;
    //生成一个值为0的矩阵
	cout<<Mat::zeros(3,3,CV_32F)<<endl;
	//生成一个值为1的矩阵
	cout<<Mat::ones(3,3,CV_32F)<<endl;
	system("pause");
}



#include<opencv2/opencv.hpp>
#include<assert.h>
using namespace cv;
int main()
{
	Mat srcImage=imread("f:/huangshan.jpg");
	Mat dstImage=imread("f:/Lena.jpg");
    assert(srcImage.data!=NULL && dstImage.data!=NULL);	

	Mat roi=srcImage(Rect(0,0,dstImage.cols,dstImage.rows)); //获取感兴趣区域
	Mat mask = imread("f:/Lena.jpg",0);
	namedWindow("image",WINDOW_AUTOSIZE);
    roi=roi.t(); //mat转置
	flip(roi,roi,0); //0为上下翻转,>0为左右翻转,<0同时上下左右翻转
	//将掩膜拷贝到ROI中
	//dstImage.copyTo(roi,mask);
	addWeighted(roi,0.7,dstImage,0.3,0.,roi);

	
	//Mat mask = imread("f:/huangshan.jpg",0);
	//img.copyTo(roi,mask);
	imshow("image",srcImage);
	waitKey();
	return 0;
}


  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值