了解卷积核的输出图像范围

时间:2019-01-20 14:14:41

标签: ios macos image-processing core-image

我正在编写自定义的Core Image滤镜,很难真正理解extent的{​​{1}}方法的CIKernel参数。

到目前为止,我在所有文档和WWDC谈话中都将其描述为“内核定义域”,因此内核所产生的区域会产生有意义的非零结果。

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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