Matlab - 如何计算图像像素偏移

Posted

技术标签:

【中文标题】Matlab - 如何计算图像像素偏移【英文标题】:Matlab - how to calculate image pixels shift 【发布时间】:2022-01-07 23:31:24 【问题描述】:

在 Matlab 中,我有两张相似的图像,但一张与另一张相比有像素偏移。如何计算轴 x 和 y 的偏移量(像素数量)?

Image Center

Image Shift

【问题讨论】:

找到二维卷积的最大值可能是最简单的方法。 【参考方案1】:

一般问题称为图像配准。您可以使用互相关来查找亚像素图像配准,例如通过文件交换上的函数dftregistration。

通过指定上采样参数10来注册0.1像素内的两个图像A和B

A=(imread("img1.png"));
B=(imread("img2.png"));

upsamplingfactor = 10;
output  = dftregistration(fft2(A),fft2(B),upsamplingfactor );
disp(output),

0.2584    0.0000   75.5000  -85.5000

我们得到的图像偏移了 y=75.5 和 x=-85.5 像素,不确定性为 0.258 像素。如果您之前处理图像以通过应用阈值或模糊来减少噪点,这会变得更准确)

【讨论】:

以上是关于Matlab - 如何计算图像像素偏移的主要内容,如果未能解决你的问题,请参考以下文章

偏移图像框内的平铺形状

如何在 MATLAB 中使用 Graph Cut 统计图像补全模型的补丁偏移量

使用以百分比给出的 imagemagick 偏移量裁剪图像

如何将二值图象转化为数据矩阵,运用MATLAB或者VC?

如何计算偏移量以绘制到画布中应用了比例变换的最近像素?

在 Matlab 中删除图像偏移(2D 基线)