如何为图像翻译设置边框

信息处理 图像处理
2022-02-05 16:59:45

我想做的是构建一个类似于 imtranslate 在 matlab 中的工作方式的函数。由于 FAT32 的回答,我到目前为止所拥有的是一个具有以下效果的翻译函数:

原始图像 在此处输入图像描述

由于图像从左向右平移时已达到极限,我们可以看到平移后的像素位于左侧。应该怎么做才能防止这种现象发生?

1个回答

您在图像中观察到的是图像的 DFT 乘以复指数所隐含的循环移位的效果;即,最后一个(最右边的)样本成为第一个(最左边的)样本,因此在对图像执行单个像素移动之后,围绕图像进行循环移动。

从理论上讲,如果您使用相同的方法来翻译图像,则无法防止移位现象;即,通过使用指数乘正向图像 DFT 的逆 DFT。

但是,如果您在原始图像的末端填充足够数量的零,则实际上可以使它变得不可观察,这样零的移动就不会被注意到,并且只有图像的线性平移会很明显。

这样做需要提前知道移位量。然后给定移位量和方向,您必须在图像的正确端填充该数量的零,以便当这些零循环到另一端时,它们不会产生明显的效果,并且图像似乎是线性移位的全部。