Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 比较与照片相似的图像--检测差异、图像差异_Image Processing_Language Agnostic_Computer Vision - Fatal编程技术网

Image processing 比较与照片相似的图像--检测差异、图像差异

Image processing 比较与照片相似的图像--检测差异、图像差异,image-processing,language-agnostic,computer-vision,Image Processing,Language Agnostic,Computer Vision,这种情况与我所能找到的任何东西都不同,如下所示:如果我拍了两张相似的照片,我希望能够突出这两张照片中的不同特征。例如,以下两个半场的儿童点差游戏: 图像中的差异将是丢失/添加的位和/或颜色变化,以及通过进行像素对像素的比较而很容易从原始图像文件中检测到的差异类型。然而,由于它们受到光线波动和摄影不精确的影响,我需要一种更为宽松/聪明的算法 如您所见,如果覆盖,图像不一定会完美对齐 这个问题被贴上了语言不可知的标签,因为我希望答案能为我指明相关的算法,但是如果它们存在的话,我也会对当前的实现感兴

这种情况与我所能找到的任何东西都不同,如下所示:如果我拍了两张相似的照片,我希望能够突出这两张照片中的不同特征。例如,以下两个半场的儿童点差游戏:

图像中的差异将是丢失/添加的位和/或颜色变化,以及通过进行像素对像素的比较而很容易从原始图像文件中检测到的差异类型。然而,由于它们受到光线波动和摄影不精确的影响,我需要一种更为宽松/聪明的算法

如您所见,如果覆盖,图像不一定会完美对齐


这个问题被贴上了语言不可知的标签,因为我希望答案能为我指明相关的算法,但是如果它们存在的话,我也会对当前的实现感兴趣,特别是在Java、Ruby、,或者C.

我的一般方法是使用光流对齐两个图像,并在对齐后执行逐像素比较


然而,就具体情况而言,如果两幅图像与您的情况有显著差异,则标准光流(OpenCV等)可能会失败。如果这真的失败了,那么即使图像有很大的不同,最近的光流技术也应该是可行的。例如,您可能想看一看关于稀疏通信解决此问题的论文。

以下方法应该有效。OpenCV中提供了所有这些功能。看一看计算同音字的方法

  • 使用角点检测器检测两幅图像中的关键点
  • 提取关键点的描述符(SIFT/SURF)
  • 匹配关键点并使用RANSAC计算单应性,将第二个图像与第一个图像对齐
  • 将单应性应用于第二个图像,使其与第一个图像对齐
  • 现在只需计算两幅图像之间的像素差异,差异图像将突出显示从第一幅图像到第二幅图像的所有变化

非常清晰的答案,今晚我将尝试在OpenCV中实现一些东西。请注意,单应性几乎是刚性的:它将平面(在3d中)映射到平面(不考虑变形)。在上面的例子中,它将导致一个简单的全局右转。当相机在平面上观看时,同形图用于补偿相机的运动。是的,我同意。在当前示例中,看起来您正在匹配一个平面对象(绘画),因此可以使用同音字。但是,如果你将这种方法应用于真实的3D对象,那么单应性将在假设所有特征位于同一平面上的情况下进行计算,这反过来可能会给你带来意想不到的图像对齐。事实上,对于这种应用来说,这可能就足够了。最好的方法是尝试和判断,无论如何,它比我的解决方案更容易实现——因此这确实是一个好的开始。正在努力找出如何为Harris角点检测器(OpenCV)hmpf发现的点提取SIFT描述符。。