卷积处理过程模拟:用Python实现OpenCV函数filter2D等效的卷积功能

卷积处理过程模拟:用Python实现OpenCV函数filter2D等效的卷积功能

一、引言

在《OpenCV-Python 图像平滑处理:卷积函数filter2D详解及均值滤波案例》介绍了filter2D相关的功能及使用,下面老猿用Python、numpy矩阵运算以及OpenCV-Python的图像基础操作模拟实现一个卷积程序。该程序支持使用特定的卷积核对图像进行卷积处理,除了卷积核和锚点参数外,本程序模拟filter2D实现时其他参数都使用的是默认值。

二、程序实现需要关注的三点

2.1、在filter2D的卷积核矩阵类型为浮点类型

在图像处理中,数字图像都是整数型矩阵,当用核矩阵和卷积核进行卷积处理时,如果不强制将数字图像矩阵转为浮点型,那么在相关矩阵运算过程中必须指定结果类型也为浮点型,否则会丢失精度。老猿采用的是在运算过程中将图像矩阵元素转为核矩阵元素类型相同的类型。

2.2、numpy的矩阵从浮点转为整型时的取值处理

numpy的矩阵从浮点转为整型时的整型取值是去除小数部分,不进行四舍五入处理,而filter2D经测试是进行了四舍五入处理的。

下面是numpy浮点矩阵转换为整型矩阵的一个测试,测试代码如下:

kerna

Original: https://blog.csdn.net/LaoYuanPython/article/details/123343963
Author: LaoYuanPython
Title: 卷积处理过程模拟:用Python实现OpenCV函数filter2D等效的卷积功能

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/763154/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球