个人资料,仅供学习使用
修改时间——2022年2月19日 14:57:51
学习课程:OpenCV4 图像处理与视频分析实战教程
课程讲师:贾志刚
12 图像模糊
opencv知识点:
- 高斯模糊 - GaussianBlur
- 盒子模糊 - boxFilter
本课所解决的问题:
- 如何理解高斯模糊?
- 如果实现高斯模糊?
- 如何实现盒子模糊?
1.高斯模糊
关于高斯模糊,可以阅读 28 高斯模糊,文章中非常详细。
可能有人发现,高斯模糊竟然没有设置锚定点!
因为高斯模糊的锚定点必须是中心的位置,默认如此,所以不需要
2.盒子模糊
盒子模糊就是均值模糊,在OpenCV中,实现盒子模糊要用到API
- boxfilter
boxfilter是均值模糊的快速版本
具体介绍如下
boxfilter
boxfilter
使用方框滤镜模糊图像
共7个参数
第1个参数 输入
第2个参数 输出
第3个参数 输出图像深度(-1表示使用输入图像的深度)
第4个参数 ksize(模糊内核大小)
第5个参数 锚点(默认Point(-1,-1)表示锚点位于内核中心)
第6个参数 是否归一化(默认为true)
第7个参数 borderType
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv) {
Mat src = imread("D:/WorkSpace/Opencv/images/hahaha.jpg");
if (src.empty()) {
printf("could not find image file");
return -1;
}
namedWindow("input", WINDOW_AUTOSIZE);
imshow("input", src);
// 盒子模糊 - 均值模糊
Mat box_dst;
boxFilter(src, box_dst, -1, Size(25, 25), Point(-1, -1), true, BORDER_DEFAULT);
imshow("box-blur", box_dst);
waitKey(0);
destroyAllWindows();
return 0;
}
本课所用API查阅
GaussianBlur
boxFilter