OpenCV学习之cv2.getGaussianKernel函数

OpenCV学习之cv2.getGaussianKernel函数

一、简介

cv2.getGaussianKernel 是 OpenCV 中用于生成一维高斯核(Gaussian Kernel)的函数。

高斯核在图像处理中主要用于图像的平滑处理模糊处理以及作为卷积核来进行各种图像操作。生成的高斯核可以用于卷积操作,以达到平滑和去噪的效果。

二、基本语法

cv2.getGaussianKernel(ksize, sigma, ktype=cv2.CV_64F)

三、参数说明

  • ksize (int): 高斯核的大小(必须是奇数),即生成的核的长度。
  • sigma (float): 高斯函数的标准差,决定高斯核的宽度。如果为 0,则根据 ksize 自动计算 sigma
  • ktype (数据类型, 可选): 核的类型,可以是 cv2.CV_32Fcv2.CV_64F。默认值为 cv2.CV_64F

四、返回值

返回一个一维的高斯核(列向量),类型为 numpy.ndarray

五、示例

示例 1: 生成高斯核
import cv2
import numpy as np

# 生成一个大小为 5,标准差为 1 的高斯核
ksize = 5
sigma = 1
gaussian_kernel = cv2.getGaussianKernel(ksize, sigma)

print("生成的高斯核:\n", gaussian_kernel)

输出:

生成的高斯核:
 [[0.05448868]
 [0.24420134]
 [0.40261995]
 [0.24420134]
 [0.05448868]]
示例 2: 使用高斯核进行卷积
import cv2
import numpy as np

# 读者记得更改路径
image = cv2.imread('2015.jpg')

# 生成一个大小为 5,标准差为 1 的高斯核
ksize = 5
sigma = 1
gaussian_kernel = cv2.getGaussianKernel(ksize, sigma)

# 使用高斯核进行卷积操作
blurred_image = cv2.filter2D(image, -1, gaussian_kernel)

# 展示图片
cv2.imshow('filteredIMG', blurred_image)
cv2.waitKey()
cv2.destroyAllWindows()
示例 3: 生成二维高斯核
import cv2
import numpy as np

image = cv2.imread('2015.jpg')

# 生成一个大小为 5,标准差为 1 的高斯核
ksize = 5
sigma = 1
gaussian_kernel = cv2.getGaussianKernel(ksize, sigma)

# 获取二维高斯核
matrix_kernel = gaussian_kernel.dot(gaussian_kernel.T)
print(matrix_kernel)

# 使用高斯核进行卷积操作
blurred_image = cv2.filter2D(image, -1, matrix_kernel)

# 展示图片
cv2.imshow('filteredIMG', blurred_image)
cv2.waitKey()
cv2.destroyAllWindows()

输出:

[[0.00296902 0.01330621 0.02193823 0.01330621 0.00296902]
 [0.01330621 0.0596343  0.09832033 0.0596343  0.01330621]
 [0.02193823 0.09832033 0.16210282 0.09832033 0.02193823]
 [0.01330621 0.0596343  0.09832033 0.0596343  0.01330621]
 [0.00296902 0.01330621 0.02193823 0.01330621 0.00296902]]

六、注意事项

  1. 核大小: 高斯核的大小必须是奇数(如 3, 5, 7 等),这样才能保证卷积中心对称。
  2. 自动计算 sigma: 如果 sigma 设置为 0,则会根据高斯核大小 ksize 自动计算一个合适的 sigma 值。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Rust: duckdb和polars读csv文件比较

duckdb在数据分析上,有非常多不错的特质。1、快;2、客户体验好,特别是可以同时批量读csv(在一个目录下的csv等文件)。polars的性能比pandas有非常多的超越。但背后的一些基于arrow的技术栈有很多相同之类。今天想比较一…

YOLOv5改进 | 注意力机制 | 迈向高质量像素级回归的极化自注意力【全网独家】

秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 专栏目录: 《YOLOv5入门 …

[数据集][目标检测]人员状态跑睡抽烟打电话跌倒检测数据集4943张5类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):4943 标注数量(xml文件个数):4943 标注数量(txt文件个数):4943 标注…

黑马点评DAY1|Redis入门、Redis安装

什么是Redis? redis是一种键值型数据库,内部所存的数据都是键值对的形式,例如,我们可以把一个用户数据存储为如下格式: 键值id$1600name张三age21 但是这样的存储方式,数据会显得非常松散,因…

qiankun微前端:qiankun+vite+vue3+ts(未完待续..)

目录 什么是微前端 目前现有的微前端 好处 使用 子应用的页面在主应用里显示 什么是微前端 微前端是一种多个团队通过独立发布功能的方式来共同构建现代化 web 应用的技术手段及方法策略。 我的理解就是将一个大型的前端应用拆分成多个模块,每个微前端模块可以由…

大淘客api实现多多进宝的商品查询PHP版

大家好,我是网创有方,今天教大家如何使用大淘客的api实现拼多多商品详情信息查询。这里用到的多多进宝,如果没有多多进宝的,先去多多进宝注册个账号吧! 第一步:进入大淘客官方创建应用,并且下载…

AI降重新突破:chatgpt降重工具在学术论文中的应用与效果

论文降重一直是困扰各界毕业生的“拦路虎”,还不容易熬过修改的苦,又要迎来降重的痛。 其实想要给论文降重达标,我有一些独家秘诀。话不多说直接上干货! 1、同义词改写(针对整段整句重复) 这是最靠谱也是…

.NET C# 使用OpenCV实现人脸识别

.NET C# 使用OpenCV实现模型训练、人脸识别 码图~~~ 1 引入依赖 OpenCvSHarp4 - 4.10.0.20240616 OpenCvSHarp4.runtime.win - 4.10.0.20240616 2 人脸数据存储结构 runtime directory | face | {id}_{name} | *.jpg id - 不可重复 name - 人名 *.jpg - 人脸照片3 Demo 3.…

stable-diffusion-webui-colab搭建SadTalker由图生成视频人

在这里选择一个stable-diffusion-webui-colab ​​​​​​​​​GitHub - camenduru/stable-diffusion-webui-colab: stable diffusion webui colab 这里我选择是: https://colab.research.google.com/github/camenduru/stable-diffusion-webui-colab/blob/main…

Webpack: 深入理解图像加载原理与最佳实践

概述 图形图像资源是当代 Web 应用的最常用、实惠的内容、装饰元素之一,但在 Webpack 出现之前对图像资源的处理复杂度特别高,需要借助一系列工具(甚至 Photoshop)完成压缩、雪碧图、hash、部署等操作。 而在 Webpack 中,图像以及其它多媒体…

JAVA课程复习

简答题65分(理解)❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀看本章小结 读程序写结果45分 填空102分(lambda) 编程310分(20~30行) ❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀-❀ 1~13章,11、13章重…

小时候的子弹击中了现在的我-hive进阶:案例解析(第18天)

系列文章目录 一、Hive表操作 二、数据导入和导出 三、分区表 四、官方文档(了解) 五、分桶表(熟悉) 六、复杂类型(熟悉) 七、Hive乱码解决(操作。可以不做,不影响) 八、…

Lr、LrC软件下载安装 Adobe Lightroom专业摄影后期处理软件安装包分享

Adobe Lightroom它不仅为摄影师们提供了一个强大的照片管理平台,更以其出色的后期处理功能,成为了摄影爱好者们争相追捧的必备工具。 在这款软件中,摄影师们可以轻松地管理自己的照片库,无论是按拍摄日期、主题还是其他自定义标签…

【JVM基础篇】垃圾回收

文章目录 垃圾回收常见内存管理方式手动回收:C内存管理自动回收(GC):Java内存管理自动、手动回收优缺点 应用场景垃圾回收器需要对哪些部分内存进行回收?不需要垃圾回收器回收需要垃圾回收器回收 方法区的回收代码测试手动调用垃圾回收方法Sy…

Python | Leetcode Python题解之第206题反转链表

题目: 题解: # Definition for singly-linked list. # class ListNode: # def __init__(self, val0, nextNone): # self.val val # self.next next class Solution:def reverseList(self, head: Optional[ListNode]) -> Optio…

QT事件处理及实例(鼠标事件、键盘事件、事件过滤)

这篇文章通过鼠标事件、键盘事件和事件过滤的三个实例介绍事件处理的实现。 鼠标事件及实例 鼠标事件包括鼠标的移动、按下、松开、单击和双击等。 创建一个MouseEvent项目,通过项目介绍如何获得和处理鼠标事件。程序效果如下图所示。 界面布局代码如下&#xff…

后端之路第三站(Mybatis)——入门配置

一、Mybatis是啥? 就是一个用java来操控数据库的框架语言 之前学的datagrip或者navicat这些软件里我们操作数据库,原理是我们编写完的操作语句发送到服务器传送到数据库系统,然后数据库执行完之后再发送给服务器返回给datagrip或者navicat显…

独立开发者系列(13)——示例理解面向对象与过程

专业术语晦涩难懂,特别是当你没有写过稍微大点的系统的时候,你要理解这里面的区别很难。 从最简单的早期我们学习开始,我们除了练习hello world掌握了入门函数之后,基本都再练习算法。比如水仙花数的获取,冒泡排序&…

phpMyAdmin | mysqli::real_connect(): (HY000/2002): No such file or directory

法一:第一次安装宝塔 第一次安装宝塔mysql服务是默认关闭的,需要手动打开,打开服务再次进入phpMyAdmin发现可以进入了 法二:第一种方法没解决用这种 出现mysqli::real_connect(): (HY000/2002): No such file or directory错误通…

Java | Leetcode Java题解之第206题反转链表

题目: 题解: class Solution {public ListNode reverseList(ListNode head) {if (head null || head.next null) {return head;}ListNode newHead reverseList(head.next);head.next.next head;head.next null;return newHead;} }