filter2D图像卷积

来源:互联网 发布:手机淘宝刷単软件 编辑:程序博客网 时间:2024/06/11 05:30

图像处理中的卷积运算一般都用来平滑图像、尖锐图像求边缘等等

七个参数分别表示:(原图,目标图,图像深度,核函数,模板中心点,delta,边界类型)
一般卷积操作只涉及到前五个参数。

原文链接:

1.Filter是一个非常耗时的操作,不过OpenCV的Filter写法比较特别

这里把原理解析一下,就可以编写自己的filter代码

OpenCV的Filter2D代码解析

2.下面这篇是对官方文档的一个翻译:

opencv学习(七)之图像卷积运算函数filter2D()

作者自己写了一段代码,重点在:

Mat kern = (Mat_<char>(3,3) << 0, -1 ,0,                              -1, 5, -1,                               0, -1, 0);    Mat dstImage;    filter2D(srcImage,dstImage,srcImage.depth(),kern);

这里的srcImage.depth()可以写为-1,表示=目标图像和原图像深度保持一致。

最后给出官方文档的定义:

这里写图片描述

定义如下:

void filter2D( InputArray src, OutputArray dst, int ddepth,               InputArray kernel, Point anchor=Point(-1,-1),               double delta=0, int borderType=BORDER_DEFAULT );

参数说明:(一般只写前5个参数)

InputArray src: 输入图像

OutputArray dst: 输出图像,和输入图像具有相同的尺寸和通道数量

int ddepth: 目标图像深度,如果没写将生成与原图像深度相同的图像。当ddepth输入值为-1时,目标图像和原图像深度保持一致。

InputArray kernel: 卷积核(或者是相关核),一个单通道浮点型矩阵。如果想在图像不同的通道使用不同的kernel,可以先使用split()函数将图像通道事先分开。

Point anchor: 内核的基准点(anchor),其默认值为(-1,-1)说明位于kernel的中心位置。基准点即kernel中与进行处理的像素点重合的点。

double delta: 在储存目标图像前可选的添加到像素的值,默认值为0

int borderType: 像素向外逼近的方法,默认值是BORDER_DEFAULT,即对全部边界进行计算。

原创粉丝点击