opencv-34 图像平滑处理-2D 卷积 cv2.filter2D()

news2025/1/13 17:45:32

2D卷积是一种图像处理和计算机视觉中常用的操作,用于在图像上应用滤波器或卷积核,从而对图像进行特征提取、平滑处理或边缘检测等操作。

在2D卷积中,图像和卷积核都是二维的矩阵或数组。卷积操作将卷积核在图像上滑动,对每个局部区域进行元素级别的乘法和累加操作,得到输出图像的对应位置的像素值。

OpenCV 提供了多种滤波方式,来实现平滑图像的效果,例如均值滤波、方框滤波、高斯滤波、中值滤波等。大多数滤波方式所使用的卷积核都具有一定的灵活性,能够方便地设置卷积核的大小和数值。但是,我们有时希望使用特定的卷积核实现卷积操作,例如使用如下卷积核进行卷积操作。

在这里插入图片描述
前面介绍过的滤波函数都无法将卷积核确定为上述形式,这时要使用 OpenCV 的自定义卷积函数。
在 OpenCV 中,允许用户自定义卷积核实现卷积操作,使用自定义卷积核实现卷积操作的函数是 cv2.filter2D(),其语法格式为:

dst = cv2.filter2D( src, ddepth, kernel, anchor, delta, borderType )

式中:

  1. dst 是返回值,表示进行方框滤波后得到的处理结果。
  2. src 是需要处理的图像,即原始图像。它能够有任意数量的通道,并能对各个通道独立
    处理。图像深度应该是 CV_8U、CV_16U、CV_16S、CV_32F 或者 CV_64F 中的一种。
  3. ddepth 是处理结果图像的图像深度,一般使用-1 表示与原始图像使用相同的图像深度。
  4. kernel 是卷积核,是一个单通道的数组。如果想在处理彩色图像时,让每个通道使用不同的核,则必须将彩色图像分解后使用不同的核完成操作。
  5. anchor 是锚点,其默认值是(-1, -1),表示当前计算均值的点位于核的中心点位置。该值使用默认值即可,在特殊情况下可以指定不同的点作为锚点。
  6. delta 是修正值,它是可选项。如果该值存在,会在基础滤波的结果上加上该值作为最终的滤波处理结果。
  7. borderType 是边界样式,该值决定了以何种情况处理边界,通常使用默认值即可。

在通常情况下,使用滤波函数 cv2.filter2D()时,对于参数锚点 anchor、修正值 delta、边界样式 borderType,直接采用其默认值即可。因此,函数 cv2.filter2D()的常用形式为:

dst = cv2.filter2D( src, ddepth, kernel )

示例:

自定义一个卷积核,通过函数 cv2.filter2D()应用该卷积核对图像进行滤波操作,并显示滤波结果。

设计一个 9×9 大小的卷积核,让卷积核内所有权重值相等,如下所示:

在这里插入图片描述
借助 numpy 库中的 ones()函数即可创建该卷积核,具体的语句为:

kernel = np.ones((9,9),np.float32)/81

综上所述,程序设计代码如下:

import cv2
import numpy as np
o=cv2.imread("lena.png")
kernel = np.ones((9,9),np.float32)/81
r = cv2.filter2D(o,-1,kernel)
cv2.imshow("original",o)
cv2.imshow("Gaussian",r)
cv2.waitKey()
cv2.destroyAllWindows()

运行结果
在这里插入z图片描述
当然,本例中使用的卷积核比较简单,该滤波操作与直接使用均值滤波语句“r=cv2.blur(o,(5,5))”的效果是一样的。在实际应用中,可以定义更复杂的卷积核实现自定义滤波操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/830320.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智慧消防解决方案

智慧消防解决方案引入了物联网云平台、云计算中心等创新技术,实现对消防物联网数据的实时采集、传输和分析处理。通过智能感知设备与云平台的紧密结合,该解决方案利用先进的物联网技术、移动互联网和云计算等先进技术手段,实现火灾报警信号的…

健身用什么耳机好、健身大神都戴的运动耳机推荐

随着健身逐渐成为一种普遍的生活状态,越来越多的运动者选择将音乐作为他们锻炼时的精神伴侣。一款好的运动耳机,佩戴的舒适性再到音质、续航、防水。大家肯定问到哪有什么运动耳机好用的呢?今天就为大家推荐几款合适的运动耳机 1、NANK南卡R…

差分隐私 MP-SPDZ框架安装

ubuntu虚拟机安装MP-SPDZ框架 1.下载安装包到虚拟机内 https://github.com/data61/MP-SPDZ/releases 安装git 报错Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 4402(unattended-upgr) 解决方案 #杀死进程 sudo k…

重磅!三思LED显示闪耀第31届世界大运会五座赛事场馆

成都第31届世界大学生夏季运动会 2023中国成都。 世界大学生夏季运动会(以下简称“大运会”) 我们来了! 三思LED不仅以颇具想象力的艺术手法 亮相这场高规格体育盛会 更以卓越品质为此盛大赛事保驾护航! 揭秘|成都大运会会…

2023年电赛---运动目标控制与自动追踪系统(E题)关于网友的问题回复

前言 &#xff08;1&#xff09;各位私信问问题之前&#xff0c;看看自己的问题是不是在这个里面再问&#xff01; &#xff08;2&#xff09; <1>2023年8月3日&#xff0c;10点25分。增加第三问的细节回答。 <2>2023年8月3日&#xff0c;10点45分。更新关于舵机安…

HTML中元素和标签有什么区别?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 标签&#xff08;Tag&#xff09;⭐元素&#xff08;Element&#xff09;⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&a…

使用爬虫代理IP速度慢是什么原因?

你们有没有遇到过使用爬虫代理IP速度慢的问题呢&#xff1f;相信很多使用爬虫抓取的人都曾经陷入过这个烦恼&#xff0c;今天我们就来聊聊这个话题。 首先&#xff0c;我们得明白为什么爬虫代理IP速度会变得慢。其实&#xff0c;原因有很多&#xff0c;比如代理服务器过多的连接…

高中生台灯什么牌子好?挑选不好可能会伤眼!

台灯是现在家庭都在使用的照明灯具&#xff0c;对于晚上工作学习、看书休闲都有很大的裨益&#xff0c;尤其是正在上学阶段的孩子&#xff0c;更是必备可少的学习“伴侣”。但是在挑选台灯的过程中也要注重护眼效果&#xff0c;在此基础上才是讨论性价比的问题&#xff0c;如果…

1本Frontiers期刊不再被收录,EI期刊目录已更新 (附8月最新刊源)!

近期爱思唯尔&#xff08;Elsevier&#xff09;官网更新了EI Compendex收录期刊目录&#xff0c;这是2023年第四次更新。 Elsevier发布2023年第四版EI期刊目录 更新时间&#xff1a;2023年7月1日 不同于SCI/SSCI目录每月更新一次的频率&#xff0c;EI目录更新没有规律可言&am…

结合ChatGPT和MINDSHOW自动生成PPT

结合chatGPT和MINDSHOW自动生成PPT应用场景 总结/朱季谦 一、首先&#xff0c;通过chatGPT说明你的需求&#xff0c;学会提问是Ai时代最关键的一步。你需要提供一些关键信息&#xff0c;如果没有关键信息&#xff0c;就按照大纲方式让它设计&#xff0c;例如&#xff0c;我让…

Day17 C++ 继承

C 继承 继承继承的基本语法继承的语法示例 继承方式公有继承&#xff08;public inheritance&#xff09;保护继承&#xff08;protected inheritance&#xff09;私有继承&#xff08;private inheritance&#xff09;总结 继承中的对象模型继承中构造和析构顺序构造顺序析构顺…

【WiFi】Hostapd工作流程分析

目录 1.Hostapd概述 2.Hostapd代码框架 3.Hostapd各种命令配置工具 4.hostaod的主函数 5.hostaod代码分析 1.Hostapd概述 Hostapd是一个运行在用户态的守护进程,可以通过Hostapd来读取配置文件,通过nl802.11来控制底层的状态如RTS/CTS beacon帧间隔等等信息;也可以读取相…

录音怎么转换成文字?这几种简单转换方法学起来

将录音转换成文字可以方便查找和引用重要信息&#xff0c;可以使用搜索功能快速找到关键词和短语&#xff0c;而无需听整个录音。其次&#xff0c;将录音转换成文字可以提高准确性和完整性&#xff0c;因为可以在记录文本中添加遗漏的细节和备注。此外&#xff0c;将录音转换成…

【cluster_block_exception】写操作elasticsearch索引报错

【cluster_block_exception】操作elasticsearch索引b报错 背景导致原因&#xff1a;解决方法&#xff1a; 背景 今天线上elk的数据太多&#xff0c;服务器的空间不足了。所以打算删除一些没用用的数据。我是用下面的request&#xff1a; POST /{index_name}/_delete_by_query…

Java基础面试题3

Java基础面试题 1&#xff1a;https://cloud.fynote.com/share/d/qPGzAVr5 2&#xff1a;https://cloud.fynote.com/share/d/MPG9AVsAG 3&#xff1a;https://cloud.fynote.com/share/d/qPGHKVsM 一、JavaWeb专题 1.HTTP响应码有哪些 1、1xx&#xff08;临时响应&#xf…

调整心态,走出焦虑,追求更高的自我!

每个人都希望能够成为最好的自己&#xff0c;追求自我提升和进步。然而&#xff0c;在这个竞争激烈的社会中&#xff0c;我们常常会感到焦虑和迷茫。看着周围的人在学习、工作、生活中取得成功&#xff0c;我们不禁会问自己&#xff0c;为什么他们能够做到&#xff0c;而我却做…

识别万物扫一扫,遇到不认识的物品扫就完事

随着科技的不断发展&#xff0c;移动设备已经成为人们日常生活中必不可少的工具。移动设备上的扫一扫功能&#xff0c;可以通过摄像头扫描物品&#xff0c;识别并获取相关信息&#xff0c;为人们的生活带来了很大的便利。本文将探讨识别万物扫一扫的使用及原理。 识别万物的使用…

opencv-32 图像平滑处理-高斯滤波cv2.GaussianBlur()

在进行均值滤波和方框滤波时&#xff0c;其邻域内每个像素的权重是相等的。在高斯滤波中&#xff0c;会将中心点的权重值加大&#xff0c;远离中心点的权重值减小&#xff0c;在此基础上计算邻域内各个像素值不同权重 的和。 基本原理 在高斯滤波中&#xff0c;卷积核中的值不…

【TIZI】霆智服务器登录控制太后,显示no VNC

【问题描述】 登录霆智服务器管理平台后&#xff0c; 点击【控制台】出现no VNC界面&#xff0c; 以及可能会显示 Error 500: closing file "var/tmp/pve-reserved-ports.tmp.1514’ failed - No space left on device。 最终该界面停留在Loading状态。 【解决方法】 方法…

性能测试工具在提升软件质量和用户体验方面的关键作用

在当今的数字时代&#xff0c;软件应用的性能和响应速度对于用户体验和企业的成功至关重要。为了满足用户对高性能和卓越体验的期望&#xff0c;开发团队需要使用专业的性能测试工具来检测和改进应用程序的性能。本文将讨论性能测试工具在提升软件质量和用户体验方面的关键作用…