OpenCV 常用函数(一)

本文主要介绍:Opencv常用函数,如均值、最大最小、归一化、滤波、旋转、求连通域等函数。


一、基本函数

//初始化
Mat img = Mat::zeros(Height, Width, CV_8UC1);
Mat img = Mat::ones(Height, Width, CV_8UC1);
Mat img(Height, Width,CV_32FC1, Scalar(5));
img.create(Height, Width, CV8UC1);

//数据类型转化
img.convertTo(dstImg, dataType);

//读写图像
imwrite(pathm, img);
imread(path,  flag); // 0 灰度图 1 原图

//显示图像
namedWindow("name",1); //1 大小和图像相同,窗口不可拉伸  0 窗口可拉伸
imshow("name", img); //可以直接用imshow
waitKey(0); //图像上点击Enter退出程序

//矩阵元素访问
img.at<类型>(i,j) //类型一定和img相同
CV_8UC1  	unsigned char
CV_32FC1 	float
CV_64FC1  	double

// Mat* 元素访问方式
bins为Mat *bins
bins->ptr<float>(i)

//判断读取数据为空
IplImage* dst1 =  cvLoadImage(path.c_str(), 1 );  //rgb图
if(!src1)
{
	printf("读取图像 %s 失败\n", path.c_str());
	return false;
}

img = imread(tempPath, 1); 
if(!img.data)
{
	printf("序列图模板匹配时,读取 %s 模板失败!\n", tempPath.c_str());
	return false;
}


//求最大最小值
double maxval, minval; 
minMaxIdx(inImg,&minval,&maxval);

//求均值方差
Mat avg1, std1;
meanStdDev(inImg, avg1, std1);
double mean = avg1.at<double>(0,0); //多波段,依次为(0,1),(0,2)...
double std = std1.at<double>(0,0);

//Mat矩阵求和
Mat I;
Scalar s = sum(I); 
Sum = s.val[0]; //多波段,则每个波段依次为 s.val[1]、s.val[2]...

//Mat其他操作
exp(I,I); //矩阵自然指数
cartToPolar(X, Y, Grad, Angle); //由x y 方向变化量求梯度和角度
normalize(img, img, 1.0, 0.0, CV_MINMAX);//归一化到0-1
sqrt(img, img); //开矩阵平方 数据类型不变
double fro =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值