当研究文章的作者没有说/提及/暗示他们如何处理靠近图像边界的邻近区域操作时,可以安全地假设什么?
我的问题似乎很幼稚,因为https://en.wikipedia.org/wiki/Neighborhood_operation上提到了一些选项。
我正在复制一篇期刊文章中报道的作品,其中current_point周围的300x300邻域用于计算。作者没有提到他们如何处理边境案件。
答案 0 :(得分:1)
有几种方法可以处理边界:
1)裁剪:摆脱像素。通常在软件中实现,将这些外部值填充为0。例如:
00000
123 01230
456 ----> 04560
789 07890
00000
2)扩展:简单地"复制"离开边界区域的最近边缘像素。例如,
11233
123 11233
456 ----> 44566
789 77899
77899
或者,不管你的邻居/内核需要多远,都要继续。
3)换行:就像吃豆子一样。例如:
97897
123 31231
456 ----> 64564
789 97897
31231
在这种情况下,我任意选择对角包装(复制对角)。有些人喜欢插入角落。我认为如果您计划对数据进行傅里叶变换(或者如果它已经在频率空间中,与任何类型的光谱周期包装相同的想法),这种类型的边缘处理会特别有用,但我和# 39;我不确定,我从未在实践中使用它。
4)反思:这是我从未使用过的方法,但听说过。 例如:123 2112332
456 ----> 5445665
789 8778998
我选择不在那里填充顶部/底部,因为它会很冗长。
使用其中一些方法也可以尝试使用非对角线。您可以根据需要扩展列以尝试查找可能需要的对角线,也可以插值以获取值。
答案 1 :(得分:0)
如果是边缘点,则完全取决于您正在执行的操作。您需要查看对图像执行的操作(特别是在边缘/边界处)。
最简单的方法是使用零填充。
hasChildren: "items"
我不知道你是如何实现它的(MATLAB / OpenCV)? 以下链接可能有助于MATLAB实现。 MATLAB Neighborhood Operations