opencv-GaussianBlur高斯滤波
图像处理中,常用的滤波算法有均值滤波、中值滤波以及高斯滤波等
高斯滤波GaussianBlur
与均值模糊相比,只是把卷积模板中的值换一下,不是全1了,换成一组符合高斯分布的数值放在模板里面,比如这时中间的数值最大,往两边走越来越小,构造一个小的高斯包
mao.jpg
#include<opencv2/opencv.hpp> #include<iostream> int main(int argc, char** argv) { cv::Mat src = cv::imread("D:/bb/tu1/mao.jpg"); cv::Mat out; cv::GaussianBlur(src, out, cv::Size(5, 5), 3, 3);//高斯滤波 /* 参数1:src,输入图像,即源图像,填Mat类的对象即可。它可以是单独的任意通道数的图片,但需要注意,图片深度应该为CV_8U,CV_16U, CV_16S, CV_32F 以及 CV_64F之一 参数2:即目标图像,需要和源图片有一样的尺寸和类型 参数3:ksize,高斯内核的大小。其中ksize.width和ksize.height可以不同,但他们都必须为正数和奇数 参数4:sigmaX,表示高斯核函数在X方向的的标准偏差 参数5:sigmaY,表示高斯核函数在Y方向的的标准偏差;若sigmaY为零,就将它设为sigmaX,如果sigmaX和sigmaY都是0,那么就由ksize.width和ksize.height计算出来 应分别指定X和Y方向的标准偏差,sigmaX和sigmaY。如果仅指定了sigmaX,则sigmaY与sigmaX相同。如果两者都为零,则根据内核大小计算它们。高斯模糊在从图像中去除高斯噪声方面非常有效 参数6:borderType在图像边界上应用内核时指定图像边界。可能的值有: cv::BORDER_CONSTANT cv::BORDER_REPLICATE cv::BORDER_REFLECT cv::BORDER_WRAP cv::BORDER_REFLECT_101 cv::BORDER_TRANSPARENT cv::BORDER_REFLECT101 cv::BORDER_DEFAULT cv::BORDER_ISOLATED */ cv::GaussianBlur(src, out, cv::Size(5, 5), 3, 3); cv::namedWindow("src"); cv::imshow("src", src); cv::namedWindow("out"); cv::imshow("out", out); std::cerr << src.rows << std::endl; std::cerr << src.cols << std::endl; cv::waitKey(0); return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
2019-10-28 python--数学运算函数