选取一张图片,通过滑动条控制参数,对图片进行均值滤波,高斯滤波,中值滤波,双波滤波的处理

本文主要是介绍选取一张图片,通过滑动条控制参数,对图片进行均值滤波,高斯滤波,中值滤波,双波滤波的处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这里写自定义目录标题

  • 选取一张图片,通过滑动条控制参数,对图片进行均值滤波,高斯滤波,中值滤波,双波滤波的处理
    • 均值滤波 cv2.blur(img, (ksize,ksize))
    • 中值滤波 cv2.medianBlur(img, kisze)
    • 高斯滤波 cv2.gaussianBlur(img, (ksize, ksize), sigmaX)
    • 双边滤波 cv2.bilateralFilter(img, d, sigmaColor, sigmaSpace)

选取一张图片,通过滑动条控制参数,对图片进行均值滤波,高斯滤波,中值滤波,双波滤波的处理

最近在学习人机交互,本文章是对python调用opencv实现图像平滑的一些总结。包括四个算法:均值滤波,中值滤波,高斯滤波,双边滤波。

均值滤波 cv2.blur(img, (ksize,ksize))

第一个参数是处理的图像
第二个参数是核的大小,核的大小只能是大于1的奇数,如3,5,7等。

中值滤波 cv2.medianBlur(img, kisze)

第一个参数是操作的图像
第二个参数是核的尺寸

高斯滤波 cv2.gaussianBlur(img, (ksize, ksize), sigmaX)

第二个参数是核的大小
第三个参数sigmaX影响模糊效果:
sigmaX小,表现在高斯曲线上就是曲线越高越尖,表现在滤波效果上就是模糊程度小;
sigmaX大,表现在高斯曲线上就是曲线越矮越平缓,表现在滤波效果上就是模糊程度大

双边滤波 cv2.bilateralFilter(img, d, sigmaColor, sigmaSpace)

第二个参数是领域的直径
第三个参数sigmaColor是灰度值相似性高斯函数标准差和空间高斯函数标准差。
第四个参数sigmaSpace是空间高斯函数标准差

代码如下:

#  -*- coding: utf-8 -*-
import cv2WINDOWNAME = "lvbo"
MeanBlurValue = 1
GaussianBlurValue = 1
MedianBlurValue = 1
BilateralFilterValue = 1
KSIZE = 1
MaxVal = 20#均值滤波回调函数
def on_MeanBlur(MeanBlurValue):KSIZE = MeanBlurValue * 2 + 1img1 = cv2.blur(img, (KSIZE, KSIZE))cv2. imshow(WINDOWNAME, img1)
#中值滤波回调函数
def on_MedianBlur(MedianBlurValue):KSIZE = MedianBlurValue * 2 + 1img3 = cv2.medianBlur(img, KSIZE)cv2.imshow(WINDOWNAME, img3)
#高斯滤波回调函数
def on_GaussianBlur(GaussianBlurValue):global KSIZEKSIZE = GaussianBlurValue * 2 + 3#后两个参数:核的大小和方差img2 = cv2.GaussianBlur(img, (KSIZE, KSIZE), 0)cv2.imshow(WINDOWNAME, img2)
#双边滤波回调函数
def on_BilarteralFilter(BilateralFilterValue):KSIZE = BilateralFilterValue * 20 + 5#后两个参数:空间高斯函数标准差和灰度值相似性高斯函数标准差img4 = cv2.bilateralFilter(img, 5, KSIZE, KSIZE)cv2.imshow(WINDOWNAME, img4)img = cv2.imread('img.jpg')
cv2.namedWindow(WINDOWNAME)
cv2.createTrackbar("Blur", WINDOWNAME, MeanBlurValue, MaxVal, on_MeanBlur)
on_MeanBlur(1)
cv2.createTrackbar("Gauss", WINDOWNAME, GaussianBlurValue, MaxVal, on_GaussianBlur)
on_GaussianBlur(1)
cv2.createTrackbar("Median", WINDOWNAME, MedianBlurValue, MaxVal, on_MedianBlur)
on_MedianBlur(1)
cv2.createTrackbar("Bilateral", WINDOWNAME, BilateralFilterValue, 20, on_BilarteralFilter)
on_BilarteralFilter(1)if cv2.waitKey(0) == 27:cv2.destroyAllWindows()

运行结果:
在这里插入图片描述

[1]: 《Python and OpenCV for starter》
[2]: 《Opencv官方教程中文版(For Python)》

这篇关于选取一张图片,通过滑动条控制参数,对图片进行均值滤波,高斯滤波,中值滤波,双波滤波的处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/461504

相关文章

Spring Boot 中的默认异常处理机制及执行流程

《SpringBoot中的默认异常处理机制及执行流程》SpringBoot内置BasicErrorController,自动处理异常并生成HTML/JSON响应,支持自定义错误路径、配置及扩展,如... 目录Spring Boot 异常处理机制详解默认错误页面功能自动异常转换机制错误属性配置选项默认错误处理

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

一文解密Python进行监控进程的黑科技

《一文解密Python进行监控进程的黑科技》在计算机系统管理和应用性能优化中,监控进程的CPU、内存和IO使用率是非常重要的任务,下面我们就来讲讲如何Python写一个简单使用的监控进程的工具吧... 目录准备工作监控CPU使用率监控内存使用率监控IO使用率小工具代码整合在计算机系统管理和应用性能优化中,监

如何使用Lombok进行spring 注入

《如何使用Lombok进行spring注入》本文介绍如何用Lombok简化Spring注入,推荐优先使用setter注入,通过注解自动生成getter/setter及构造器,减少冗余代码,提升开发效... Lombok为了开发环境简化代码,好处不用多说。spring 注入方式为2种,构造器注入和setter

Java堆转储文件之1.6G大文件处理完整指南

《Java堆转储文件之1.6G大文件处理完整指南》堆转储文件是优化、分析内存消耗的重要工具,:本文主要介绍Java堆转储文件之1.6G大文件处理的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言文件为什么这么大?如何处理这个文件?分析文件内容(推荐)删除文件(如果不需要)查看错误来源如何避

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

Java docx4j高效处理Word文档的实战指南

《Javadocx4j高效处理Word文档的实战指南》对于需要在Java应用程序中生成、修改或处理Word文档的开发者来说,docx4j是一个强大而专业的选择,下面我们就来看看docx4j的具体使用... 目录引言一、环境准备与基础配置1.1 Maven依赖配置1.2 初始化测试类二、增强版文档操作示例2.

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

MySQL深分页进行性能优化的常见方法

《MySQL深分页进行性能优化的常见方法》在Web应用中,分页查询是数据库操作中的常见需求,然而,在面对大型数据集时,深分页(deeppagination)却成为了性能优化的一个挑战,在本文中,我们将... 目录引言:深分页,真的只是“翻页慢”那么简单吗?一、背景介绍二、深分页的性能问题三、业务场景分析四、