问题标签 [image-comparison]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2300 浏览

c# - 使用win32 api c#比较两个图像

我有两张图片,我想比较两张图片并想有所不同。我搜索谷歌并找到了一个链接,我从中复制粘贴代码以使用 win32 api 进行图像比较。所以这是网址 http://blog.bobcravens.com/2009/04/create-a-remote-desktop-viewer-using-c-and-wcf/

我在这里粘贴代码。

当 GetBoundingBoxForChanges() 调用时,我收到错误消息,错误消息是尝试读取或写入受保护的内存。这通常表明其他内存已损坏。

如果 ((pNew + x)[0] != (pPrev + x)[0]) 在此代码处发生错误

所以我无法找出原因。如何解决此错误。请指导。谢谢

0 投票
1 回答
245 浏览

c# - 在原始图像上应用差异图像c#

假设我有两个具有相同高度和宽度的图像。pic1.jpg 和 pic2.jpg。两个图像看起来非常相似,差异最小。在下面的例程的帮助下,我们可以得到两个图像之间的区别。下面的例程不是我的例程。

在获得差异后,我如何合并第一张图像上的差异。

这下面我们可以合并

但我们需要知道新图像将在第一张图像上绘制的 x 和 y。谁能告诉我如何从上述称为PixelDiff()的例程中获取 x 和 y 位置,谢谢。

0 投票
3 回答
7242 浏览

python - 将url中的图像与python文件系统中的图像进行比较

有没有一种快速简便的方法来进行这种比较?

我发现很少有来自 stackoverflow 的图像比较问题,但没有一个实际上证明了这个问题的答案。

我的文件系统中有图像文件和一个从 url 获取图像的脚本。我想检查 url 中的图像是否已经与磁盘上的图像相同。通常我会将磁盘中的图像和 url 加载到 PIL 对象并使用我找到的以下函数:

但是,如果您使用 PIL 将图像保存到磁盘,这将不起作用,因为即使您将质量设置为 100 ,它也会被压缩im1.save(outfile,quality=100)

我的代码目前如下: http: //pastebin.com/295kDMsp 但图像总是最终重新保存。

0 投票
1 回答
2468 浏览

java - 如何逐像素比较两个图像并从图像的脏部分帧新图像

我正在使用robot.screenCapture()和 frame捕获屏幕bufferedImage1。我再次捕获桌面屏幕和框架bufferedImage2

请告诉我如何逐个像素地比较这两个图像(bufferedImage1和)。bufferedImage2如果有任何差异,那么如何框出不同的部分?

0 投票
1 回答
578 浏览

android - cvNorm 未被识别为 OpenCV 函数

我正在尝试与手机 SD 卡中的图像进行比较,所以我编写了这段代码。

我已将 OpenCV 作为项目导入 Eclipse Workspace 并将其设置为库。我的测试项目使用这个库。

现在,我收到此错误The method cvNorm(File, File) is undefined for the type MainActivity

我搜索了超过 3 个小时来寻找正确的代码或方法,但似乎没有一个有效,而且 Eclipse 没有建议正确的导入。有人可以告诉我正确的代码吗?

0 投票
3 回答
24867 浏览

android - Android中的OpenCV图像比较

[编辑] 我设计了一些用于图像比较的代码。匹配的部分仍然有点缺陷,我希望得到一些帮助。该项目可以在 - GitHub 上找到

我有这两个图像Img1Img2

在此处输入图像描述 在此处输入图像描述

当我在 openCV 中使用以下命令时

我得到 l2_norm 的双倍值。对于重复的图像对,此双精度值会有所不同。但如果图像不同,则会引发异常。这是我识别重复图像的方式吗?或者有没有更好的方法?我已经广泛搜索并找不到一个真正令人信服的答案。我想要关于如何比较两个图像并获得布尔值truefalse取决于图像的代码和解释。

编辑

我试过这个,但if条件永远不会满足。我假设有一些差异,但没有compare. Scalar我该怎么办?

编辑

这种方法又是有缺陷的。虽然它可以用来比较准确度不错的图像,但当图像大小不同时它会失败。

当图像尺寸不同并且我打印标量值时,我得到了这个:

[9768383.0, 1.0052889E7, 1.0381814E7, 0.0] [1.5897384E7, 1.6322252E7, 1.690251E7, 0.0]

与比较相同尺寸的图像时相比,第二个和第三个数字之间的差异虽然不大,但还是相当大的。然而,第一个数字遭受的变化最大。

比较两个图像的内容的最佳最快方法是什么?

[编辑]

我正在使用我在这里找到的代码。

我无法弄清楚的是如何初始化MatOfKeyPoint变量keypointslogoKeypoints. 这是我的代码片段:

我显然无法初始化变量keypointslogoKeypoints为空,因为那时我将收到一个空指针异常。如何初始化它们?

0 投票
3 回答
3983 浏览

android - 图片比较安卓

我开发了一个用于图像比较的应用程序。我在这里比较颜色。参考图表在数据库中。我的应用程序的工作就像.. 用相机捕捉颜色。相机由相机 API 而非意图控制。并将捕获的图像与参考图表进行比较。我的问题是光。我在白色背景中捕捉图像.. 但根据光线变化,输出变化很大。我正在使用欧几里得距离。由于光线变化,我无法获得正确的输出。有没有人有任何建议:解决灯光问题。??有什么方法可以标准化图像吗??我使用的是安卓 2.2

0 投票
1 回答
518 浏览

java - java中的同态过滤

有谁知道同态过滤的概念和工作及其java实现。我需要比较两个图像。从相机到数据库。我正在使用朴素的相似性算法。它运行良好。但换光是个问题。我们如何解决照明问题。?我被困在测试中。安卓2.2

0 投票
1 回答
232 浏览

java - 算法优化 - 并行 AsyncTasks 或线程?

我目前有一个单曲,目前使用 OpenCV 技术AsyncTask比较图像。bubble sort说,我必须将400图像相互比较。这意味着400*401/2=80,200比较。假设一次比较需要 1 秒。所以,这就是80,200 sec它周围22.27 hours的长度非常长。所以,我开发了这种类型的算法:

它将400图像分成几组580所以每组都有图像。

算法的第一部分是在组成员中比较自己的图像。

因此,image1将自身与 进行比较image2-80,这意味着存在79比较。image2会有78比较等等。这使得3,160比较。或3,160 sec。同样,image81将自身与image82-160等进行比较。所以所有的“组比较”都完成了,3,160 sec因为它们是并行运行的。

算法的第二部分将group 1元素与group 2元素、group 2with group 3group 3withgroup 4等进行比较。这将意味着image1将与 进行比较image81-160,这是比较,因此和80之间的总比较将是比较。是否可以将每个图像比较与组比较并行?也就是说,如果将自己与then进行比较,则应该这样做,以此类推,而其他组也在这样做。所以,这部分应该只取。group 1group 280*80=6400image1image81-160image26400 sec

现在,group1将与group3group2group4group3与进行比较group5。->6400 sec

之后,group1 will be compared with group4group2group5. ->6400 sec

因此,所有组都进行了比较。

总时间 = 3160+6400+6400+6400=22,360sec。我意识到小组越多,需要的时间就越多。所以,我必须增加小组规模以减少时间的增加。无论哪种方式,它都会将时间缩短到几乎1/4th是实际时间。

这个算法不现实吗?如果是这样,为什么?它有什么缺陷?我将如何解决它?是否有更好的算法可以更快地比较图像列表?显然不是quick sort,我无法按升序或降序排列图像。或者我可以吗?

如果这个算法是可能的?实施它的最佳方法是什么?Thread还是AsyncTask

0 投票
3 回答
9798 浏览

python - 使用 Python(不使用 SciPy)检测照片中的特定水印

我有大量图片(数十万张),对于每张图片,我需要说明它的右上角是否有水印。水印总是相同的并且在相同的位置。它采用带符号和一些文本的丝带形式。我正在寻找简单快速的方法来做到这一点,理想情况下,不使用 SciPy(因为它在我正在使用的服务器上不可用——但它可以使用 NumPy)

到目前为止,我已经尝试使用 PIL 和裁剪功能来隔离水印应该存在的图像区域,然后将直方图与 RMS 功能进行比较(请参阅http://snipplr.com/view/757/compare-两个 pil-images-in-python/)。这不是很好,因为两个方向都有很多错误。

任何想法将不胜感激。谢谢