【问题标题】:Image Pattern/texture Matching in MatlabMatlab中的图像图案/纹理匹配
【发布时间】:2015-04-28 01:03:20
【问题描述】:

我正在尝试匹配两个具有相同图案/纹理但强度不同的图像,如下所示。

我已经尝试计算两个图像的梯度大小和方向的差异并对其进行阈值处理。输出很差,如下所示。这两个图像具有相同的纹理,我想将它们检测为相同。有一个更好的方法吗?我希望输出几乎全是黑色的。

代码:

[Gx,Gy] = imgradientxy(rgb2gray(I3),'sobel');
[mag, dir] = imgradient(Gx, Gy);
[Gx1,Gy1] = imgradientxy(rgb2gray(I2),'sobel');
[mag1, dir1] = imgradient(Gx1, Gy1);
imshow(abs(mag-mag1)>35,[]);

【问题讨论】:

  • 那么你的问题是什么?
  • 有更好的方法吗?

标签: matlab image-processing computer-vision pattern-matching


【解决方案1】:

尝试不同的颜色平面,例如 HSV 或 YCbCr。由于您的图像显示强度变化,请使用 HSV。当考虑 YCbCr 颜色空间中的 y 平面时,我拍摄了您的两张图像,结果如下。

I = imread('1.jpg');
I2 = imread('2.jpg');
[r,c] = size(I2(:,:,3));
I=imresize(I, [r, c]);
imshow(I);
I = rgb2ycbcr(I);
I2 = rgb2ycbcr(I2);
[Gx,Gy] = imgradientxy(I(:,:,1),'sobel'); %y-plane
[mag, dir] = imgradient(Gx, Gy);
[Gx1,Gy1] = imgradientxy(I2(:,:,1),'sobel'); %y-plane
[mag1, dir1] = imgradient(Gx1, Gy1);
imshow(imerode(abs(mag-mag1)>120,1),[])

您可以尝试来自不同颜色空间的不同平面,直到在图像中获得所需的强度不变图案。

【讨论】:

  • 我的输出图像无法发布,因为我是 stackoverflow 的新手,它需要至少 10 次重复才能包含任何图像!
  • y通道基本上是强度通道,类似于灰度。在 HSV 的情况下也是如此。谢谢。
猜你喜欢
  • 1970-01-01
  • 2015-04-17
  • 1970-01-01
  • 2023-03-13
  • 2012-10-15
  • 2012-05-23
  • 2023-03-21
  • 2014-02-06
  • 2014-05-07
相关资源
最近更新 更多