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

一、引言

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

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

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

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

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

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

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


                
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LaoYuanPython

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值