
一、引言
在《OpenCV-Python 图像平滑处理:卷积函数filter2D详解及均值滤波案例》介绍了filter2D相关的功能及使用,下面老猿用Python、numpy矩阵运算以及OpenCV-Python的图像基础操作模拟实现一个卷积程序。该程序支持使用特定的卷积核对图像进行卷积处理,除了卷积核和锚点参数外,本程序模拟filter2D实现时其他参数都使用的是默认值。
二、程序实现需要关注的三点
2.1、在filter2D的卷积核矩阵类型为浮点类型
在图像处理中,数字图像都是整数型矩阵,当用核矩阵和卷积核进行卷积处理时,如果不强制将数字图像矩阵转为浮点型,那么在相关矩阵运算过程中必须指定结果类型也为浮点型,否则会丢失精度。老猿采用的是在运算过程中将图像矩阵元素转为核矩阵元素类型相同的类型。
2.2、numpy的矩阵从浮点转为整型时的取值处理
numpy的矩阵从浮点转为整型时的整型取值是去除小数部分,不进行四舍五入处理,而filter2D经测试是进行了四舍五入处理的。
下面是numpy浮点矩阵转换为整型矩阵的一个测试,测试代码如下:
kerna

老猿Python
微信公众号
专注Python相关语言、图像音视频处理、AI


评论记录:
回复评论: