halcon 中gen_gauss_filter 的数学原理与高斯加权
gen_gauss_filter是生成高斯滤波器的算子本质上是利用高斯函数构造卷积核来实现图像平滑和降噪一、高斯滤波器定义高斯滤波器是一种线性平滑滤波器二维形式为二、核生成原理 (gen_gauss_filter)在 HALCON 中gen_gauss_filter会生成一个离散卷积核 K三、卷积实现生成的核 K 与图像 I 做卷积特点平滑噪声高频成分衰减保持边缘大体位置不像均值滤波那样强模糊这个方法计算太慢了所以我们要分离来提高效率二维高斯可以分解为 x 和 y 一维卷积四、OpenCV中的实现HALCON 的gen_gauss_filter会生成二维高斯核 KOpenCV 对应函数cv::Mat cv::getGaussianKernel(int ksize, double sigma, int ktype CV_64F);生成一维高斯核长度 ksize对应二维卷积时可以使用外积cv::Mat gk cv::getGaussianKernel(ksize, sigma, CV_64F); cv::Mat gauss2D gk * gk.t(); // 外积生成二维核直接做高斯滤波cv::GaussianBlur(src, dst, cv::Size(ksize, ksize), sigmaX, sigmaYsigmaX);示例cv::Mat src cv::imread(image.png, cv::IMREAD_GRAYSCALE); cv::Mat dst; int ksize 7; // 核大小 double sigma 1.5; // 标准差 cv::GaussianBlur(src, dst, cv::Size(ksize, ksize), sigma);核大小对应 HALCON 的mask_size或自动计算6*sigma1sigma 对应 HALCON 的平滑强度二维高斯核可分解为 x 和 y 方向的一维卷积cv::sepFilter2D(src, dst, -1, gk, gk);gk 1D 高斯核效率高于直接二维卷积HALCONOpenCVgen_gauss_filter生成高斯核cv::getGaussianKernel生成 1D 高斯核 → 外积得到 2D用卷积滤波图像cv::GaussianBlur或cv::sepFilter2D五、高斯加权高斯加权就是利用高斯函数对邻域像素进行距离加权平均使中心像素影响更大从而实现平滑且尽量保持结构的滤波。作用✔ 去噪最常见抑制高频噪声✔ 图像平滑去除细碎纹理✔ 预处理SLAM / 视觉提高特征稳定性✔ 构建尺度空间SIFT多尺度高斯模糊什么是高斯加权本质高斯加权 用高斯函数作为权重对邻域数据做加权平均核心思想距离中心越近 → 权重越大距离越远 → 权重指数衰减高斯加权的计算公式理解a b c d e f g h i 高斯加权 1 2 1 2 4 2 1 2 1 1/16 * [1 2 1 2 4 2 1 2 1] 中心权重大 → 保留结构 边缘权小 → 抑制噪声OpenCVcv::GaussianBlur(src, dst, Size(ksize, ksize), sigma);高斯的好处① 平滑但不“过度模糊”均值滤波所有点一样 → 模糊严重高斯中心更重要 → 保留细节② 连续、光滑可导高斯函数是C∞无限可导C^\infty无限可导C∞无限可导 对梯度、边缘检测非常友好③ 频域性质非常重要高斯的傅里叶变换仍然是高斯④ 可分离工程核心六、为什么“平滑滤波最优解是高斯1、在高斯噪声假设下最小二乘估计等价于最大似然估计再引入空间平滑约束后最优权重函数自然是高斯函数因此高斯滤波是最优线性平滑滤波器2、高斯核 在“高斯噪声 局部平滑假设”下通过加权最小二乘得到的最优滤波权重目的对含噪信号做平滑同时尽量不破坏原始结构求解最优权重推导核心思想从最大似然估计推导加入空间约束
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2428734.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!