当前位置:   article > 正文

Matlab数字图像处理-图像对齐

Matlab数字图像处理-图像对齐

任务:在下面两幅图像中找不同,并将不同之处标出来。提示:两幅图像没有对齐(有一定的平移量);首先通过算法对齐图像。

  • 算法原理

使用图像的互相关来找到图像之间的平移量。图像的互相关是一种用于比较两幅图像之间相似度的数学操作。互相关首先将两幅图像转换为灰度图像,以便进行灰度级别的比较。对其中一幅图像进行翻转操作。将翻转后的图像与另一幅图像进行卷积,计算在每个位置上的像素值的乘积之和。得到的互相关结果矩阵表示了两幅图像在不同位置上的相似度。

  • 解题步骤

1.将两幅图像转换为灰度图像,使用rgb2gray函数将彩色图像转换为灰度图像。

2.计算第一幅图像和第二幅图像之间的互相关函数。使用normxcorr2函数计算两幅灰度图像的归一化互相关函数,计算它们之间的相似度。

3.找到互相关函数的峰值,即找到最大值和其对应的位置。max函数用于找到互相关函数矩阵corrMatrix中的最大值maxValue,maxIndex用于记录最大值的索引。使用ind2sub函数将最大值的索引转换为行列坐标,得到maxRow和maxCol。

4.计算平移量,将第二幅图像平移使其与第一幅图像对齐。平移量的计算是通过将最大值的坐标减去第二幅图像的大小得到的。

5.使用imtranslate函数对第二幅图像进行平移变换,将其与第一幅图像对齐。

根据找到的峰值位置计算平移量。平移量可以表示为在水平和垂直方向上的像素偏移量。

6.计算图像1和对齐后的图像2的差异,显示在图形窗口中。

  • 程序代码
  1. clc;
  2. clear all;
  3. close all;
  4. % 读取两幅图像
  5. image1 = imread('q1_painting_1.jpg');
  6. image2 = imread('q1_painting_2.jpg');
  7. % 将图像转换为灰度图像
  8. grayImage1 = rgb2gray(image1);
  9. grayImage2 = rgb2gray(image2);
  10. % 计算归一化互相关函数
  11. corrMatrix = normxcorr2(grayImage2, grayImage1);
  12. % 找到互相关函数的峰值
  13. [maxValue, maxIndex] = max(corrMatrix(:));
  14. [maxRow, maxCol] = ind2sub(size(corrMatrix), maxIndex);
  15. % 计算平移量
  16. shiftRow = maxRow - size(grayImage2, 1);
  17. shiftCol = maxCol - size(grayImage2, 2);
  18. % 应用平移变换对齐图像
  19. alignedImage2 = imtranslate(image2, [shiftCol, shiftRow]);
  20. % 显示对齐后的图像
  21. figure;
  22. subplot(1, 2, 1);
  23. imshow(image1);
  24. title('图像1');
  25. subplot(1, 2, 2);
  26. imshow(alignedImage2);
  27. title('对齐后的图像2');
  28. %
  29. I2 = image1-alignedImage2;
  30. figure;
  31. imshow(I2);
  32. title('图像1与图像2的区别');
  33. diffImage = imabsdiff(image1, alignedImage2);
  34. resultImage = image1 + diffImage*20;
  35. figure;
  36. imshow(resultImage);
  37. title('图像1中的差异部分');
  • 处理结果

图1和对齐后的图二如下图所示。

图1和图2之间的像素平移量如下所示。

将图像相减,计算图像1和对齐后的图像2的差异,如下所示。

由于上图显示结果比较暗,看起来不清晰,所以把差异增大,即变亮显示在图1中,结果如下。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/476323
推荐阅读
相关标签
  

闽ICP备14008679号