哪里可做网站左侧导航栏网站

张小明 2026/1/10 18:58:37
哪里可做网站,左侧导航栏网站,深圳公司注册地址异常怎么办,每一天做网站一、概述 采用一维高斯滤波#xff08;可分离高斯滤波#xff09;的核心原因在于#xff1a;在保持与二维高斯滤波完全相同数学效果的前提下#xff0c;大幅降低计算复杂度并提升工程效率。由于二维高斯核可以严格分解为两个相互独立的一维高斯核#xff08;横向 纵向可分离高斯滤波的核心原因在于在保持与二维高斯滤波完全相同数学效果的前提下大幅降低计算复杂度并提升工程效率。由于二维高斯核可以严格分解为两个相互独立的一维高斯核横向 × 纵向可大大降低计算量对于大小为M×n的图像和大小为m×n的核实现卷积操作需要MNmn次乘法核加分运算计算公式如下3.35但是如果滤波核是可分离的对于w1行卷积核第一次卷积只需要MNm次乘法和加分运算因为w1卷积核的大小为m×1,对于w2列卷积核第二次卷积只需要MNn次乘法和加分运算所以共需要MN(mn)次乘法和加分运算因此可分离的核执行卷积运算可以大大减少计算量滤波核越大越明显(可见如下公式3.44)。二、二维高斯滤波首先我们讲解一下二维高斯滤波核的生成这里根据高斯函数可直接生成高斯滤波核代码如下// 二维高斯滤波核 std::vectorstd::vectordouble GaussianKernelGenerate(int kSize, double sigma) { int k kSize / 2; std::vectorstd::vectordouble kernel(kSize, std::vectordouble(kSize)); double sum 0.0; const double PI 3.14159265358979323846; for (int i -k; i k; i) { for (int j -k; j k; j) { double value static_castdouble((1.0 / (2 * PI * sigma * sigma)) * (exp(-(i * i j * j) / (2 * sigma * sigma)))); kernel[i k][j k] value; sum value; } } // 归一化 for (int i 0; i kSize; i) { for (int j 0; j kSize; j) { kernel[i][j] / sum; } } return kernel; }三、一维高斯滤波同理由高斯函数可知我们可以分解为两个一维的滤波进行卷积计算分离式滤波核正是opencv获得高斯滤波核的底层实现原理这里我们也用底层代码实现我们生成一维的卷积核先用一维卷积核对图像行向量进行卷积再用该滤波对图像的列向量进行卷积即可。代码如下// 分离式高斯滤波核 std::vectordouble GenerateSeparateGaussianKernel(int kSize, double sigma) { int k kSize / 2; double sum 0.0; std::vectordoublekernel(kSize, 0); const double PI 3.14159265358979323846; for (int i -k; i k; i) { double value static_castdouble((1.0 / (sqrt(2 * PI) * sigma)) * exp(-(i * i) / (sqrt(2) * sigma))); kernel[i k] value; sum value; } // 归一化 for (int i 0; i kSize; i) { kernel[i] / sum; } return kernel; }四、滤波分离这里我们重点讲解一下滤波分离首先我们是知道高斯函数是可分离的。那对于一般的滤波核呢我们不可以直接进行一维滤波计算首先是否可分离需要满足矩阵可分离性质即满足矩阵 行 × 列也就是秩为1。如果我们在计算位置滤波核的时候不确定这个矩阵的秩是否为1我们可以先用 SVD 计算一下它的秩或者观察它的奇异值。如果除了第一个奇异值外其他奇异值不为 0或接近 0那就不能分离。如果秩为1我们可以采用以下方法对其进行分解在核中找到任何一个非0元素并将其值表示为E形成行向量r和列向量c他们分别等于E元素所在的那一行和那一列这个时候这个r和c就是分离出来的行滤波核和列滤波核原理如下。代码如下// 将滤波核进行分离 void splitGaussianKernel(const std::vectorstd::vectordouble GaussianKernel, std::vectordouble c, std::vectordouble r) { // 获取高斯核的行和列 int rows GaussianKernel.size(); int cols GaussianKernel[0].size(); r.resize(rows); c.resize(cols); // 找到非零元素高斯核的中心就是最稳定的非零元素 double center GaussianKernel[rows / 2][cols / 2]; // 提取非零元素所在行 for (int i 0; i rows; i) { r[i] GaussianKernel[i][center]; } // 提取非零元素列 for (int j 0; j cols; j) { c[j] GaussianKernel[center][j]; } }
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

河南企业网官方网站教你做兼职的网站

第一章:Open-AutoGLM自动化测试实战(兼容性验证黄金标准)在现代软件交付体系中,确保模型驱动型应用的跨平台一致性是质量保障的核心环节。Open-AutoGLM 作为专为 GLM 系列大模型设计的自动化测试框架,提供了标准化的兼…

张小明 2026/1/9 15:07:47 网站建设

网站建设免费加盟代理建设网站各方面费用预算

玩转STM32 HAL库:从迷茫到精通的全攻略 一、为什么HAL库看起来如此令人困惑? 如果你曾盯着STM32CubeMX生成的上千行代码感到不知所措,或者翻阅数百个HAL函数却不知道从何入手,别担心——几乎每个STM32开发者都经历过这个阶段。 HA…

张小明 2026/1/8 15:52:53 网站建设

《语文建设》网站推广普通话征文

yarn.lock 文件解析与依赖管理 在现代前端工程中,你有没有遇到过这样的场景:本地运行好好的功能,一到 CI 流水线就报错?或者同事拉下代码后启动失败,反复确认“我都 yarn install 了啊”?这类“在我机器上…

张小明 2026/1/9 15:07:44 网站建设

做网站要源代码中山做网站做的好的公司

LangFlow 分布式锁应用案例 在企业级 AI 应用开发中,一个常见的挑战是:如何让多个团队成员安全、高效地协作设计复杂的智能体(Agent)工作流?尤其是在使用像 LangChain 这样的强大但代码密集型框架时,非程序…

张小明 2026/1/9 15:07:42 网站建设

免费在线做高考试题的网站创建网站需要什么

TensorFlow在自然语言处理中的应用实例分析 在电商平台的客服后台,每天有数以万计的用户提问涌入:“订单怎么还没发货?”“能退差价吗?”“发票开错了怎么办?”如果全靠人工响应,不仅成本高昂,还…

张小明 2026/1/9 15:07:40 网站建设

杭州网站公司设计上海网站开发招聘

在孩子近视防控的过程中,家长们往往聚焦于控制电子产品使用时长、督促户外活动等常见方法,却容易忽略一些融入日常、无需额外付出过多精力的关键手段。其中,眼调节训练灯作为一种能在孩子读书、写作业等核心用眼场景中同步发挥作用的工具&…

张小明 2026/1/9 15:07:39 网站建设