OpenCV_图像滤波

滤波是信号和图像处理中的一种基本操作。它的目的时选择性地提取图像中某些方面的内容,这些内容在特定应用环境下传达了重要信息。

通过观察图像灰度值变化的频率来描述图像的特征,称为频域

通过观察图像灰度分布来描述图像特征,称为空域

有几种著名的变换法可以用来清楚地显示图像地频率成分,例如傅里叶变换或余弦变换。图像是二维的,因此频率分为两种,即垂直频率水平频率

在频域分析框架下,滤波器是一种放大图像中某些频段,同时滤掉其他频段的算子。

*低通滤波器

一个简单的方法是把每个像素的值替换成它周围像素的平均值。这样一来,强度的快速变化被消除,代之以更加平滑的过渡。

cv::blur函数将每个像素的值替换成该像素邻域的平均值。

效果:


代码:

int main()
{
	cv::Mat image = cv::imread("zifeng.jpg");
	cv::imshow("original image", image);
	cv::Mat result;
	cv::blur(image, result, cv::Size(4, 4));
	cv::imshow("mean filtered image", result);
	cvWaitKey();
}

有时需要让邻域内较近的像素具有更高的重要度,因此可计算加权平均值,即较近的像素比较远的像素具有更大的权重,可采用高斯函数指定的加权策略。


代码:

cv::GaussianBlur(image, result, cv::Size(5, 5), 1.5);
cv::imshow("Gaussian filtered image", result);
如果用邻域像素的加权累加值来替换像素值,这种滤波器是 线性的。
简单应用:

1、缩减像素采样

测试图像缩小1/4后(缩小的方式是每4行像素中保留一行),再将每个像素放大4倍得到的结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值