OpenCV3编程入门第五章小结

1.访问像素

(1)颜色空间缩减

data[j]=data[j]/div*div+div/2;
		通过像素值转化,如把11-19均转化为10,从而缩减颜色空间

2.ROI区域叠加&图像混合

(1)定义ROI的方法

		1.通过Rect指定
imageROI=image(Rect(x,y,logo.cols.logo.rows));
		2.通过Range指定
imageROI=image(Range(),Range());

(2)mask和copyto函数

		copyto的两种重载
		1.image.copyTo(imageROI),作用是把image的内容粘贴到imageROI;
		2.image.copyTo(imageROI,mask),mask作为一个掩模板,如果在某个像素点(i, j)其值为1(只看第一通道,所以mask单通道即可)则把image.at(i, j)处的值直接赋给imageROI.at(i, j),如果其值为0则imageROI.at(i, j)处保留其原始像素值

3.图像对比度、亮度值调整

(1)算子

		算子的作用是接受一个或多个输入图像,并产生图像
		g(x)=a*f(i,j)+b
		代码示例
d.at<Vec3b>(y, x)[c] = saturate_cast<uchar>((g_c*0.01)*(s.at<Vec3b>(y, x)[c]) + g_b);
	 	 saturate_cast的作用对数据结果强行转换,以确保它为有效值

(2)多个creatTrackbar的创建

		注意:使用多个slider值但是使用同一个on_trackbar(回调函数!!)
		同时注意回调函数两个参数必须为(int ,void*)

4.傅里叶变换

(1)Fourier简介

		傅里叶的粗暴介绍:将一个函数变成多个正弦和余弦函数的组合!!
		在频域里,对于一幅图像,
		高频部分代表图像的细节和纹理,
		低频部分代表图像的轮廓信息,
		故而傅里叶变换在图像处理中可以做到图像增强,去噪、图片分割之边缘检测等功能

(2)重要函数详解

		1.dft()
			作用是对一维或二维浮点数数组进行正向或反向离散傅里叶变换。
		2.getOptimalDFTSize()
			返回给定向量尺寸的傅里叶最优尺寸大小
		3.copyMakeBorder()
			扩充图像边界
		4.
Mat planes[] = { Mat_<float>(padded),Mat::zeros(padded.size(),CV_32F) };
	Mat complexI;
	merge(planes, 2, complexI);
	 为傅里叶变换的结果分配存储空间
	 5.进行傅里叶变换
	 dft(complexI, complexI);
	 6.将复数转换为幅值
	 split(complexI, planes);
    magnitude(planes[0], planes[1], planes[0]);
	Mat magnitudeImage=planes[0];
	7.进行对数尺度缩放			
	log(magnitudeImage, magnitudeImage);
	8.剪切和重分布幅度图象限
	int cx = magnitudeImage.cols / 2;
	int cy = magnitudeImage.rows / 2;
	Mat q0(magnitudeImage, Rect(0, 0, cx, cy));   // ROI区域的左上
	Mat q1(magnitudeImage, Rect(cx, 0, cx, cy));  // ROI区域的右上
	Mat q2(magnitudeImage, Rect(0, cy, cx, cy));  // ROI区域的左下
	Mat q3(magnitudeImage, Rect(cx, cy, cx, cy)); // ROI区域的右下
												  //交换象限(左上与右下进行交换)
	Mat tmp;
	q0.copyTo(tmp);
	q3.copyTo(q0);
	tmp.copyTo(q3);
	q1.copyTo(tmp);
	q2.copyTo(q1);
	tmp.copyTo(q2);
9.归一化
normalize(magnitudeImage, magnitudeImage, 0, 1,NORM_MINMAX);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值