1. 二维高斯核函数

参考链接:https://blog.csdn.net/qq_16013649/article/details/78784791

g(x, y, sigma) = exp(-(x**2+y**2)/(2*sigma**2))

2. 卷积过程

高斯模糊:

G(xi, yi, sigma)= img*kernel

3. code

# 高斯核函数

import numpy as np

def gauss(kernel_size, sigma):

kernel = np.zeros((kernel_size, kernel_size))

center = kernel_size//2

if sigma<=0:

sigma = ((kernel_size-1)*0.5-1)*0.3+0.8

s = sigma**2

sum_val = 0

for i in range(kernel_size):

for j in range(kernel_size):

x, y = i-center, j-center

kernel[i, j] = np.exp(-(x**2+y**2)/2*s)

sum_val += kernel[i, j]

kernel = kernel/sum_val

return kernel

gauss_kernel = gauss(3, 2)

import matplotlib.pyplot as plt

plt.imshow(gauss_kernel)

# cv2 filter

img = np.random.random([5,5])

import cv2

fl_cv = cv2.filter2D(img, -1, gauss_kernel)

plt.imshow(fl_cv)

# python

def conv_2d(kernel, img, mode='fill'):

if mode =='fill':

h = kernel.shape[0]//2

w = kernel.shape[1]//2

# opencv filter2d 默认采用reflect填充方式

# 前面测试了constant edge都不符合

img = np.pad(img, (h,w), 'reflect')

res_h = img.shape[0]-kernel.shape[0]+1

res_w = img.shape[1]-kernel.shape[1]+1

res = np.zeros((res_h, res_w))

dh = kernel.shape[0]

dw = kernel.shape[1]

for i in range(res_h):

for j in range(res_w):

res[i,j] = np.sum(img[i:i+dh, j:j+dw]*kernel)

return res

fl_py = conv_2d(gauss_kernel, img)

plt.imshow(fl_py)

python高斯核函数_python 实现高斯核与卷积过程相关推荐

  1. python高斯核函数运用_高斯核函数

    在计算机视觉中,有时也简称为高斯函数.高斯函数具有五个重要的性质,这些性质使得它在早期图像处理中特别有用.这些性质表明,高斯平滑滤波器无论在空间域还是在频率域都是十分有效的低通滤波器,且在实际图像处理 ...

  2. python xlutils教程_Python基于xlutils修改表格内容过程解析

    一.xlutils是什么 是一个提供了许多操作修改excel文件方法的库: 属于python的第三方模块 xlrd库用于读取excel文件中的数据,xlwt库用于将数据写入excel文件,修改用xlu ...

  3. python类实例化_python基础8之类的实例化过程剖析

    一.概述 之前我们说关于python中的类,都一脸懵逼,都想说,类这么牛逼到底是什么,什么才是类?下面我们就来讲讲,什么是类?它具有哪些特性. 二.类的语法 2.1 语法 class dog(obje ...

  4. python入门函数编程_Python入门——面向函数的编程,过程

    第一部分 函数的定义及调用 1.1 为什么要用函数 提高代码复用性--抽象出来,封装为函数 将复杂的大问题分解成一系列小问题,分而治之--模块化设计的思想 利于代码的维护和管理 1.2 函数的定义及调 ...

  5. python爬虫插件_Python使用Chrome插件实现爬虫过程图解

    做电商时,消费者对商品的评论是很重要的,但是不会写代码怎么办?这里有个Chrome插件可以做到简单的数据爬取,一句代码都不用写.下面给大家展示部分抓取后的数据: 可以看到,抓取的地址,评论人,评论内容 ...

  6. python做算法分析_Python实现迪杰斯特拉算法过程解析

    一. 迪杰斯特拉算法思想 dijkstra算法主要针对的是有向图的单元最短路径问题,且不能出现权值为负的情况!dijkstra算法类似于贪心算法,其应用根本在于最短路径的最优子结构性质. 最短路径的最 ...

  7. b站python弹幕签到_Python爬虫 bilibili视频弹幕提取过程详解

    两个重要点 1.获取弹幕的url是以 .xml 结尾 2.弹幕url的所需参数在视频url响应的 javascript 中 先看代码 import requests from lxml import ...

  8. 图像处理核函数:之高斯核的生成方法 python

    图像处理核函数:之高斯核函数的生成方法 python 高斯核函数(低通高斯滤波器核) 高斯分布函数 高斯核生成函数 代码 效果 高斯核函数的图像 高斯核函数(低通高斯滤波器核) 最近在看DIP(Dig ...

  9. Tensorflow用SVM(高斯核函数)分类非线性数据

    如果想分割非线性数据集,该如何改变线性分类器映射到数据集?答案是,改变SVM损失函数中的核函数. # Illustration of Various Kernels #---------------- ...

  10. 高斯核函数python代码_单类SVM:SVDD

    话接上文(SVM的简单推导),这篇文章我们来看单类SVM:SVDD.可能大家会觉得很奇怪,我们为什么需要单分类呢?有篇博客举了一个很有意思的例子. 花果山上的老猴子,一生阅猴无数,但是从来没有见过其它 ...

最新文章

  1. Android Go初探
  2. Pandas/networkx图分析简单入门
  3. Algorithm:【Algorithm算法进阶之路】之十大经典排序算法
  4. Codeforces 934C - A Twisty Movement
  5. echarts瀑布图_ECharts · Example
  6. 【人体姿态估计1】Convolutional Pose Machines_2016
  7. CCIE理论-第五篇-SDA-2
  8. 强类型数据集DataSet入门1
  9. L1-008. 求整数段和-PAT团体程序设计天梯赛GPLT
  10. java三级分销_java版微信三级分销完整源码
  11. Vue使用Element UI插件
  12. Word2019 未找到 MathPage.wll 文件的解决方法
  13. VS Code:推荐插件 - HTML格式化(包括JS、CSS)
  14. 记一篇我的机器学习和目标检测的学习历程_目标检测与卷积神经网络的简单理解
  15. JAVA使用RXTX编写串口调试工具-代码分析
  16. ValueError:too many values to unpacked(expect2)
  17. FBI树--字符二叉树
  18. 机器人开发--常用仿真软件工具
  19. 数据库管理与高可用----MySQL高可用搭建
  20. 网络变压器 原理、功能、解决辐射发射问题的应用

热门文章

  1. Java中的反射机制
  2. 非极大值抑制(NMS)讲解
  3. 关于学习单片机keil uvision5的基本使用方法
  4. PB通过VDN实现Http上传、下载
  5. minist数据集的获取方法
  6. 二次与三次B样条曲线c++实现
  7. 【有限元分析】提高有限元分析计算精度的h方法和p方法
  8. adb连接手机显示:List of devices attached
  9. 虾扑 上货软件全新升级提升运营率
  10. learun通用权限系统框架功能实现设计