ios - 了解卷积核的输出图像范围
问题描述
我正在编写自定义核心图像过滤器,我很难真正理解'方法的extent
参数。CIKernel
apply
在我发现的所有文档和 WWDC 讨论中,它被描述为“内核定义域”,因此内核产生有意义的非零结果的区域。
根据该定义,我假设卷积核的输出范围与输入图像的范围相同,因为卷积总是将多个输入值组合成一个输出值。但是在我发现的示例以及对内置内核行为的观察中,例如CIGaussianBlur
,输出范围总是大于输入(取决于卷积核的大小)。
我不明白为什么。为什么内核要为原始输入域之外的像素生成结果?
解决方案
在输出范围的定义下,输入图像和内核相交的任何输出像素都是有效像素。2*n+1
对于宽度为像素的内核,此定义n
在图像的两侧添加像素。
但还有其他可能的定义。有时您只需要内核与输入图像完全重叠的部分结果。n
在这里,我们从图像的两侧减去像素。
但当然,图像处理中最常见的定义是输出图像与输入图像具有相同大小。如果图像在处理过程中不改变大小,这是最有用的。
推荐阅读
- mysql - JMeter JDBC 手动提交
- kubernetes - Kubernetes cronjob 无法访问数据库服务
- python - 使用 matplotlib 在热图中绘制 x、y、数据
- android - 如何通过将鼠标悬停在 android studio 中的小部件上(如 Visual Studio Code)来获取定义
- javascript - 为什么我的网站设计在省略“www.”时无法正确加载?从网址?
- android - 延迟重复协程
- c++ - 为什么我最后需要从 while 条件中减去 7 才能使我的代码正常工作
- javascript - Vue v-for循环点击事件影响所有项目
- api - Docusign 签名休息 api 结构错误 - 找不到收件人
- python - 将没有元组的列表转换为数据框