云奇网站建设备案网站资料上传教程

张小明 2026/3/2 16:29:07
云奇网站建设,备案网站资料上传教程,织梦网站为什么容易被注入,wordpress 搬家后 无法登陆图像平滑#xff08;Image Smoothing#xff09;又称图像模糊#xff0c;核心是通过邻域像素加权平均削弱图像中的高频噪声#xff08;如椒盐噪声、高斯噪声#xff09;#xff0c;同时尽可能保留图像的低频信号#xff08;如轮廓、大尺度纹理#xff09;。OpenCV 提供…图像平滑Image Smoothing又称图像模糊核心是通过邻域像素加权平均削弱图像中的高频噪声如椒盐噪声、高斯噪声同时尽可能保留图像的低频信号如轮廓、大尺度纹理。OpenCV 提供多种经典平滑算法适配不同噪声类型和场景需求广泛用于图像预处理如特征提取、目标检测前降噪、特效制作如毛玻璃效果等。一、核心原理1. 平滑的本质图像噪声可视为像素值的随机波动高频成分平滑处理通过卷积运算或邻域统计用周围像素的 “平均信息” 替代当前像素的 “噪声信息”从而降低波动卷积运算用一个固定大小的 “核Kernel” 遍历图像核内每个元素为权重当前像素值 核与邻域像素的加权和邻域统计直接计算邻域像素的均值、中值等统计量作为当前像素的新值。2. 常见噪声类型平滑的处理目标噪声类型特点适配的平滑算法椒盐噪声图像中随机出现的黑白亮点如通信干扰中值滤波最优、双边滤波高斯噪声像素值服从高斯分布的随机噪声如传感器噪声高斯滤波最优、方框滤波随机噪声无固定分布的混合噪声双边滤波、联合双边滤波3. OpenCV 常用平滑算法对比算法类型核心逻辑优点缺点适用场景方框滤波Box Blur邻域像素等权重平均核内元素全为 1/(k×k)计算速度最快实现简单平滑过度易模糊细节快速降噪、实时场景高斯滤波Gaussian Blur邻域像素按高斯分布加权平均中心权重高、边缘低降噪效果好细节保留好计算速度中等高斯噪声为主、需平衡降噪与细节中值滤波Median Blur邻域像素排序后取中值替代当前像素椒盐噪声降噪最优边缘保留好对高斯噪声效果一般椒盐噪声、脉冲噪声双边滤波Bilateral Filter结合空间距离权重和像素灰度相似度权重降噪同时保留边缘不模糊边缘计算速度最慢需保护边缘的场景如人脸、轮廓二、核心函数详解1. 方框滤波cv2.boxFilter()函数原型cv2.boxFilter(src, ddepth, ksize, dstNone, anchorNone, normalizeNone, borderTypeNone)关键参数参数含义默认值 / 常用值src输入图像单通道 / 多通道-ddepth输出图像深度-1 表示与输入一致-1ksize卷积核大小格式(width, height)需为奇数如(3,3),(5,5)normalize是否归一化True权重和为 1False直接求和可能溢出True推荐2. 高斯滤波cv2.GaussianBlur()函数原型cv2.GaussianBlur(src, ksize, sigmaX, dstNone, sigmaYNone, borderTypeNone)关键参数参数含义默认值 / 常用值sigmaXX 方向高斯核标准差控制模糊程度0自动根据 ksize 计算sigmaYY 方向高斯核标准差默认与 sigmaX 一致None等于 sigmaX说明核大小ksize越大、sigmaX越大模糊越强-3. 中值滤波cv2.medianBlur()函数原型cv2.medianBlur(src, ksize, dstNone)关键参数参数含义注意事项ksize邻域大小必须为奇数如 3,5,7大小越大降噪越强但细节越模糊说明仅支持单通道和 3 通道彩色图不支持 4 通道如透明图-4. 双边滤波cv2.bilateralFilter()函数原型cv2.bilateralFilter(src, d, sigmaColor, sigmaSpace, dstNone, borderTypeNone)关键参数参数含义常用值范围d邻域直径-1 表示自动根据 sigmaSpace 计算-1 或 5~15sigmaColor颜色空间标准差越大允许更多不同颜色参与平滑10~100sigmaSpace空间距离标准差越大邻域影响范围越大10~100说明sigmaColor和sigmaSpace越大模糊越强-三、完整实现代码多种场景1. 基础场景四种平滑算法效果对比对同一张含噪声图像应用四种算法直观对比降噪效果和细节保留能力import cv2 import numpy as np import matplotlib.pyplot as plt # 1. 读取图像并添加混合噪声模拟真实场景 img cv2.imread(lena.jpg) if img is None: print(无法读取图像请检查路径) exit() h, w img.shape[:2] img_rgb cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 添加高斯噪声 椒盐噪声 def add_mixed_noise(img, gauss_sigma20, salt_pepper_ratio0.02): 添加混合噪声 # 高斯噪声 gauss np.random.normal(0, gauss_sigma, img.shape).astype(np.float32) img_noisy img.astype(np.float32) gauss img_noisy np.clip(img_noisy, 0, 255).astype(np.uint8) # 椒盐噪声 salt np.random.rand(h, w) salt_pepper_ratio/2 pepper np.random.rand(h, w) salt_pepper_ratio/2 img_noisy[salt] 255 img_noisy[pepper] 0 return img_noisy img_noisy add_mixed_noise(img) img_noisy_rgb cv2.cvtColor(img_noisy, cv2.COLOR_BGR2RGB) # 2. 应用四种平滑算法 # 方框滤波5×5核 box_blur cv2.boxFilter(img_noisy, -1, (5, 5), normalizeTrue) box_blur_rgb cv2.cvtColor(box_blur, cv2.COLOR_BGR2RGB) # 高斯滤波5×5核sigmaX10 gauss_blur cv2.GaussianBlur(img_noisy, (5, 5), sigmaX10) gauss_blur_rgb cv2.cvtColor(gauss_blur, cv2.COLOR_BGR2RGB) # 中值滤波5×5核 median_blur cv2.medianBlur(img_noisy, 5) median_blur_rgb cv2.cvtColor(median_blur, cv2.COLOR_BGR2RGB) # 双边滤波d9sigmaColor75sigmaSpace75 bilateral_blur cv2.bilateralFilter(img_noisy, d9, sigmaColor75, sigmaSpace75) bilateral_blur_rgb cv2.cvtColor(bilateral_blur, cv2.COLOR_BGR2RGB) # 3. 显示结果 plt.figure(figsize(16, 10)) # 原图 噪声图 plt.subplot(2, 3, 1) plt.imshow(img_rgb) plt.title(Original Image) plt.axis(off) plt.subplot(2, 3, 2) plt.imshow(img_noisy_rgb) plt.title(Image with Mixed Noise) plt.axis(off) # 四种平滑结果 plt.subplot(2, 3, 3) plt.imshow(box_blur_rgb) plt.title(Box Blur (5×5)) plt.axis(off) plt.subplot(2, 3, 4) plt.imshow(gauss_blur_rgb) plt.title(Gaussian Blur (5×5, σ10)) plt.axis(off) plt.subplot(2, 3, 5) plt.imshow(median_blur_rgb) plt.title(Median Blur (5×5)) plt.axis(off) plt.subplot(2, 3, 6) plt.imshow(bilateral_blur_rgb) plt.title(Bilateral Blur (d9, σc75, σs75)) plt.axis(off) plt.tight_layout() plt.show()2. 实用场景针对性降噪按噪声类型选择算法1椒盐噪声降噪中值滤波最优import cv2 import numpy as np import matplotlib.pyplot as plt # 1. 读取图像并添加椒盐噪声 img cv2.imread(lena.jpg) img_rgb cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 添加椒盐噪声 h, w img.shape[:2] img_salt_pepper img.copy() ratio 0.05 # 噪声比例 salt np.random.rand(h, w) ratio/2 pepper np.random.rand(h, w) ratio/2 img_salt_pepper[salt] 255 img_salt_pepper[pepper] 0 img_salt_pepper_rgb cv2.cvtColor(img_salt_pepper, cv2.COLOR_BGR2RGB) # 2. 中值滤波降噪对比不同核大小 median_3 cv2.medianBlur(img_salt_pepper, 3) # 3×3核 median_5 cv2.medianBlur(img_salt_pepper, 5) # 5×5核 median_7 cv2.medianBlur(img_salt_pepper, 7) # 7×7核 median_3_rgb cv2.cvtColor(median_3, cv2.COLOR_BGR2RGB) median_5_rgb cv2.cvtColor(median_5, cv2.COLOR_BGR2RGB) median_7_rgb cv2.cvtColor(median_7, cv2.COLOR_BGR2RGB) # 3. 显示结果 plt.figure(figsize(15, 8)) plt.subplot(2, 2, 1) plt.imshow(img_salt_pepper_rgb) plt.title(Salt Pepper Noise (Ratio5%)) plt.axis(off) plt.subplot(2, 2, 2) plt.imshow(median_3_rgb) plt.title(Median Blur (3×3)) plt.axis(off) plt.subplot(2, 2, 3) plt.imshow(median_5_rgb) plt.title(Median Blur (5×5)) plt.axis(off) plt.subplot(2, 2, 4) plt.imshow(median_7_rgb) plt.title(Median Blur (7×7)) plt.axis(off) plt.tight_layout() plt.show()2高斯噪声降噪高斯滤波最优import cv2 import numpy as np import matplotlib.pyplot as plt # 1. 读取图像并添加高斯噪声 img cv2.imread(lena.jpg) img_rgb cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 添加高斯噪声σ30 gauss np.random.normal(0, 30, img.shape).astype(np.float32) img_gauss img.astype(np.float32) gauss img_gauss np.clip(img_gauss, 0, 255).astype(np.uint8) img_gauss_rgb cv2.cvtColor(img_gauss, cv2.COLOR_BGR2RGB) # 2. 高斯滤波降噪对比不同 sigma 值 gauss_σ5 cv2.GaussianBlur(img_gauss, (5, 5), sigmaX5) gauss_σ10 cv2.GaussianBlur(img_gauss, (5, 5), sigmaX10) gauss_σ20 cv2.GaussianBlur(img_gauss, (5, 5), sigmaX20) gauss_σ5_rgb cv2.cvtColor(gauss_σ5, cv2.COLOR_BGR2RGB) gauss_σ10_rgb cv2.cvtColor(gauss_σ10, cv2.COLOR_BGR2RGB) gauss_σ20_rgb cv2.cvtColor(gauss_σ20, cv2.COLOR_BGR2RGB) # 3. 显示结果 plt.figure(figsize(15, 8)) plt.subplot(2, 2, 1) plt.imshow(img_gauss_rgb) plt.title(Gaussian Noise (σ30)) plt.axis(off) plt.subplot(2, 2, 2) plt.imshow(gauss_σ5_rgb) plt.title(Gaussian Blur (σ5)) plt.axis(off) plt.subplot(2, 2, 3) plt.imshow(gauss_σ10_rgb) plt.title(Gaussian Blur (σ10)) plt.axis(off) plt.subplot(2, 2, 4) plt.imshow(gauss_σ20_rgb) plt.title(Gaussian Blur (σ20)) plt.axis(off) plt.tight_layout() plt.show()3边缘保留平滑双边滤波import cv2 import matplotlib.pyplot as plt # 1. 读取含清晰边缘的图像如人脸、物体轮廓 img cv2.imread(face.jpg) if img is None: img cv2.imread(lena.jpg) # 备用图像 img_rgb cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 2. 添加噪声 gauss np.random.normal(0, 25, img.shape).astype(np.float32) img_noisy img.astype(np.float32) gauss img_noisy np.clip(img_noisy, 0, 255).astype(np.uint8) img_noisy_rgb cv2.cvtColor(img_noisy, cv2.COLOR_BGR2RGB) # 3. 对比高斯滤波模糊边缘vs 双边滤波保留边缘 gauss_blur cv2.GaussianBlur(img_noisy, (7, 7), sigmaX15) bilateral_blur cv2.bilateralFilter(img_noisy, d9, sigmaColor80, sigmaSpace80) gauss_blur_rgb cv2.cvtColor(gauss_blur, cv2.COLOR_BGR2RGB) bilateral_blur_rgb cv2.cvtColor(bilateral_blur, cv2.COLOR_BGR2RGB) # 4. 显示结果 plt.figure(figsize(15, 8)) plt.subplot(2, 2, 1) plt.imshow(img_rgb) plt.title(Original Image) plt.axis(off) plt.subplot(2, 2, 2) plt.imshow(img_noisy_rgb) plt.title(Image with Noise) plt.axis(off) plt.subplot(2, 2, 3) plt.imshow(gauss_blur_rgb) plt.title(Gaussian Blur (Blur Edges)) plt.axis(off) plt.subplot(2, 2, 4) plt.imshow(bilateral_blur_rgb) plt.title(Bilateral Blur (Preserve Edges)) plt.axis(off) plt.tight_layout() plt.show()3. 创意场景平滑实现毛玻璃特效通过方框滤波或高斯滤波实现图片毛玻璃模糊效果import cv2 import matplotlib.pyplot as plt # 1. 读取图像 img cv2.imread(scenery.jpg) if img is None: img cv2.imread(lena.jpg) img_rgb cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 2. 毛玻璃特效大核高斯滤波或方框滤波 frosted_glass cv2.GaussianBlur(img, (15, 15), sigmaX20) # 15×15核强模糊 # 或用方框滤波frosted_glass cv2.boxFilter(img, -1, (15,15)) frosted_glass_rgb cv2.cvtColor(frosted_glass, cv2.COLOR_BGR2RGB) # 3. 显示结果 plt.figure(figsize(12, 6)) plt.subplot(1, 2, 1) plt.imshow(img_rgb) plt.title(Original Image) plt.axis(off) plt.subplot(1, 2, 2) plt.imshow(frosted_glass_rgb) plt.title(Frosted Glass Effect) plt.axis(off) plt.tight_layout() plt.show() # 保存特效图像 cv2.imwrite(frosted_glass.jpg, frosted_glass) print(毛玻璃特效生成完成)四、关键说明与实践技巧1. 算法选择指南核心噪声类型首选算法核大小 / 参数建议椒盐噪声中值滤波3×3~7×7噪声比例越高核越大高斯噪声高斯滤波3×3~5×5sigmaX5~20噪声越强sigma 越大混合噪声双边滤波 / 中值 高斯中值滤波去椒盐 高斯滤波去高斯需保留边缘双边滤波d9~15sigmaColor50~100sigmaSpace50~100实时性要求高方框滤波3×3~5×5速度最快2. 核大小与参数调整原则核大小ksize必须为奇数保证卷积中心对称越大模糊越强但细节损失越多高斯滤波sigmasigma越大高斯曲线越平缓模糊越强sigma0时自动按核大小计算sigma 0.3×((ksize-1)×0.5 - 1) 0.8双边滤波dd-1时自动适配sigmaSpaced越大计算越慢但模糊越均匀平衡原则降噪强度与细节保留成反比需根据实际需求调整如人脸降噪可适当强模糊文字图像需弱模糊保细节。3. 典型应用场景图像预处理目标检测、人脸识别前降噪提升模型准确率如 OpenCV 人脸检测前常用高斯滤波图像增强去除老照片噪声、优化低光照图像质量特效制作毛玻璃、背景虚化、模糊水印等创意效果视频处理实时视频降噪如监控视频、直播画面需选择快速算法方框滤波、小核高斯滤波。五、注意事项彩色图处理OpenCV 平滑函数自动支持彩色图BGR 三通道分别处理无需手动拆分通道数据类型输入图像需为uint8类型0~255若为浮点型需先归一化到 0~255避免溢出边缘处理平滑时图像边缘像素的邻域不完整borderType参数控制边缘填充方式默认BORDER_CONSTANT填充黑色可改为BORDER_REPLICATE复制边缘像素避免黑边性能优化实时场景优先用方框滤波或 3×3 小核高斯滤波大规模图像可先缩小图像再平滑最后放大平衡速度与效果双边滤波加速减小d值如d5适当增大sigmaColor和sigmaSpace兼顾速度与效果。图像平滑是图像处理的基础操作核心是根据噪声类型和场景需求选择合适的算法。掌握 “中值去椒盐、高斯去高斯、双边保边缘” 的核心原则再通过调整核大小和参数就能应对绝大多数降噪和平滑需求。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

深圳网站建设服务什么便宜怎样修改手机网站首页

Linly-Talker评论区互动机器人集成设想 在B站、抖音等视频平台的热门内容下,评论区常常成为“第二现场”——用户提问密集、情绪高涨,而创作者却难以一一回应。这种高互动需求与低响应效率之间的矛盾,正是AI数字人技术可以大展身手的场景。 设…

张小明 2026/1/21 9:31:13 网站建设

国内哪个推广网站做的好2021年最新军事新闻

利用 PowerShell 脚本批量更改本地管理员密码 在系统管理工作中,定期更改本地管理员密码是一项重要且繁琐的任务。许多管理员常常因为其耗时费力而忽视这一工作,从而可能导致严重的安全问题。本文将介绍一个名为 ChangeLocalAdminPassword.ps1 的 PowerShell 脚本,它可以…

张小明 2026/1/21 9:30:42 网站建设

传统网站网站设计师网址导航 优设

FaceFusion:开启AI视觉创作的新范式 在短视频内容竞争日趋白热化的今天,一个爆款视频的诞生往往不只依赖创意脚本或拍摄技巧,更取决于能否快速产出极具冲击力的视觉奇观。而在这场“眼球争夺战”中,人脸融合技术正悄然成为创作者手…

张小明 2026/1/21 9:30:11 网站建设

高端企业网站信息摄影作品展示网站设计

在APA、MLA、国标间反复横跳?被参考文献格式逼疯?你的“智能排版师”已就位!各位在格式深渊里挣扎的学术人,是否经历过这样的绝望:论文内容明明不错,却因格式问题被导师打回重改;投稿前夜还在手…

张小明 2026/1/21 9:29:40 网站建设

甘肃建设厅职称查询官方网站网站域名备案证书下载

商业智能:数据库管理与报告解决方案 一、Analysis Services 数据库管理 1.1 维护工作 在商业智能(BI)解决方案交付后,通常很快就需要进行一些增强。这是因为人们使用 BI 应用的方式决定了,每当看到有趣的信息时,他们就会希望获取更多特定方面的详细信息。 1.1.1 使用…

张小明 2026/1/21 9:29:09 网站建设

国内响应式网站案例营销网站建设服务平台

一、概述 1. 案例介绍 本案例通过本地IDEA连接华为云开发环境,通过本地的IDEA进行远程编程并连接GaussDB数据库来构建抽奖小程序应用。 GaussDB 是华为自研的企业级分布式关系型数据库,具备强大的分布式事务能力、同城多可用区部署、数据零丢失保障、…

张小明 2026/1/21 9:28:38 网站建设