首页 > 解决方案 > 了解卷积核的输出图像范围

问题描述

我正在编写自定义核心图像过滤器,我很难真正理解'方法的extent参数。CIKernelapply

在我发现的所有文档和 WWDC 讨论中,它被描述为“内核定义域”,因此内核产生有意义的非零结果的区域。

根据该定义,我假设卷积核的输出范围与输入图像的范围相同,因为卷积总是将多个输入值组合成一个输出值。但是在我发现的示例以及对内置内核行为的观察中,例如CIGaussianBlur,输出范围总是大于输入(取决于卷积核的大小)。

我不明白为什么。为什么内核要为原始输入域之外的像素生成结果?

标签: iosmacosimage-processingcore-image

解决方案


在输出范围的定义下,输入图像和内核相交的任何输出像素都是有效像素。2*n+1对于宽度为像素的内核,此定义n在图像的两侧添加像素。

但还有其他可能的定义。有时您只需要内核与输入图像完全重叠的部分结果。n在这里,我们从图像的两侧减去像素。

但当然,图像处理中最常见的定义是输出图像与输入图像具有相同大小。如果图像在处理过程中不改变大小,这是最有用的。


推荐阅读