用于找到变换不变的两个图像之间的相似性的距离度量(旋转和缩放)强度差 [英] A distance measure to find similarity between two images invariant of transformation(Rotation & scaling) Intensity difference

查看:302
本文介绍了用于找到变换不变的两个图像之间的相似性的距离度量(旋转和缩放)强度差的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想要一个距离测量来找到图像之间的相似性。
我到目前为止所尝试的内容:
1)我使用了低级距离指标,例如规范化互相关(这会根据某些阈值检索类似图像),但它无法检索旋转或移动的图像。但是,如果特定图像的亮度降低,则即使它们是相同类型的图像也不会被检索。
2)Bhattacharya系数:它检索旋转或移位的图像,但不检测强度(亮度)降低的图像。
3)尝试使用SURF等全局功能,为旋转(30度)和变换图像提供帮助,但对强度差异的图像没有帮助。

I want a distance measure to find similarity between images. What i have tried till now: 1) I have used low level distance metrics such as Normalized cross correlation (This retrieves similar images based on some threshold values) , but it cant retrieve images which are rotated or shifted. But if brightness of a particular image is reduced, the images are not retrieved even if they were of the same type. 2)Bhattacharya coefficient: It retrieves Rotated or shifted images but doesnot Detect images whose intensity(Brightness) is reduced. 3) Tried with global features like SURF which provide help for rotated(30 degrees) and transformed images , but no help for images with intensity difference.

我需要的是什么:我需要一个图像相似度的距离度量,它可以识别亮度降低的所有图像都被转换(旋转)转移)。
我想要结合这两个指标(互相关)+(Bhattacharya系数)。
相互信息会帮助我解决这个问题吗?或任何人都可以建议我一个新的指标用于此问题的相似性测量。谷歌搜索广泛的问题和无关的答案。任何人都可以在这里指导我。前言谢谢。

What i need: I need a distance metric for image similarity which recognizes those images whose brightness are reduced an all images which are Transformed(rotated and shifted). I want combination of these two metrics (Cross correlation) + (Bhattacharya Coefficient). Will Mutual Information help me in this issue?? Or Can anyone Please suggest me a new metric For similarity measurement for this issue. Tried Googling with a wide issue and irrelevant answers. Can anyone guide me in here.Advance Thanks.

推荐答案

我实施了一些mututal信息和Kullback-Leibler距离来找到Facades的相似性。它工作得很好,它的工作方式在这里解释:

I implemented some mututal information and Kullback-Leibler distance to find similarity in Facades. It worked really well, how it works is explaind here:

基于图像的外墙程序建模

本文将解释整个步骤。但它们不是图像的相似性,而是图像部分的对称性。但也许它适用于图像比较。嗯它只是和想法也许它的工作,你应该尝试。有人认为我真正看到问题的地方就是轮换。我不认为这个程序是旋转不变的。也许您应该为您的问题寻找一些视觉信息检索技术。

The whole steps are explained in the paper. But they are not for similarity of Images they are for the symmetrie of image parts. But maybe it works well also for Image comparison. Well it is just and idea maybe it works you should try. One think where i really see a problem is the rotation. I don't think this procedure is rotation invariant. Maybe you should look for some Visual Information Retrieval techniques, for your problem.

首先,您必须计算相互信息。对于thate,你创建一个大小为256 x 256的累加器数组。为什么这么大?首先是每种灰色,所以联合发布,然后是边际分布

First you have to compute the mutual Information. For thate you create an accumulator array of the size of 256 x 256. Why that size? First for every gray color so the joint distribution and then for the marginal distribution.

for(int x = 0; x < width;  x++)
   for(int y = 0; y < height; y++)
   {
      int value1 = image1[y *width + x];
      int value2 = image2[y * width + x];

      //so first the joint distribution
      distributionTable[value1][value2]++;

      // and now the marginal distribution
      distributionTable[value1][256]++;
      distributionTable[256][value2]++;
   }

现在您拥有分发表,现在您可以计算Kullback-Leibler距离。

Now you own the distribution table, and now you can compute the Kullback-Leibler distance.

for(int x = 0; x < width;  x++)
   for(int y = 0; y < height; y++)
   {
      int value1 = image1[y *width + x];
      int value2= image2[y * width + x];

      double ab = distributionTable[value1][value2] / size;
      double a = distributionTable[value1][256] / size;
      double b = distributionTable[256][value2] / size;

      //Kullback-Leibler distance
      sum += ab * Math.log(ab / (a * b));  
   }

较小的金额表示两个图像/区域之间的相似性/对称性非常高如果图像只有亮度差异,应该可以正常工作。也许还有其他距离不受旋转的影响。

A smaller sum says you that the similiarity/symmetrie between the two Images/Regions is very high. Should work well if the Image just have a brightness difference. Maybe there are other distances which are inveriant against rotation.

也许你会试图使用SURF,SIFT或类似的东西。然后您可以匹配要素点。匹配结果越高,相似性越高。我认为这是一种更好的方法,因为您不必关心比例,亮度和旋转差异。它也可以通过OpenCV快速实现

Maybe you shold try to to use SURF, SIFT or something like this. Then you can match the feature points. More higher the match results are so higher is the similarity. I think this is a better approach, because you don't have to care about scale, brightness and rotation difference. And it is also fast implemented with OpenCV

这篇关于用于找到变换不变的两个图像之间的相似性的距离度量(旋转和缩放)强度差的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆