问题标签 [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.
java - 比较代表两张图片的两个字节数组
我正在为 android 编写一个小型应用程序,我需要在两张图片之间进行比较。图片表示为两字节数组。
有没有算法可以比较它们?我需要检查它们之间所做的更改。
python - 在 Python 中比较图像
我需要比较两个作为软件屏幕截图的图像。我想检查两个图像是否相同,包括图像中显示的数字和字母。如何实现?
opencv - 如何使用 SIFT 进行图像比较
我最近偶然发现了C#的SIFT实现。我认为玩它会很有趣,所以我就这么做了。
该实现为任何给定图像生成一组“兴趣点”。我将如何实际使用这些信息来比较两个图像?
我追求的是一个单一的“相似值”。可以从两张图像的两组兴趣点中生成吗?
c# - 单位小于一个像素,屏幕捕捉在屏幕的较大部分内搜索屏幕的部分图像
整件事是,通过CopyFromScreen()
方法,我能够将图像(以前捕获的)与与捕获的图像相同的图像进行比较,因为它实际上是从该特定屏幕捕获的。
或更简单地说,例如,从桌面裁剪并保存为图像的图标以及引用其位置(点)和大小(大小(h,w))的文本文件
因此,当我们通过 File.WriteAllBytes(byte[]made it .bar) 将.bar 捕获到文件 + cuptured.txt 时,参考位置和大小,我们将副本保存到 hdd 及其在 txt 中的位置和大小。(我不必发布所有代码,但它工作正常,所以如果有人需要它..我随时分享)
我实现这一点的方法是使用我制作的方法DoCopyFScr()
- 捕获正在使用的屏幕部分Bitmap2ByteArr()
- 将位图保存为 ByteArr,然后在需要时使用 byte[] - 保存,与屏幕上捕获的位置进行比较。
位图到 ByteArr 类,方法是将 cuptured btmp 转换为 byte[]
但是如果位置改变了,即使我在屏幕上给出了图像的新位置,我也无法识别它,但当我进行测试时,使用绘画并打开网格,我定位了同一个裁剪图像的两个副本,我确实成功了,但是在游戏屏幕的真实场景中,几个图标共享背景,我尝试将它们相互比较,即使我给出了位置也没有成功,是否有一个小于像素的单位也许游戏的图形使用了一种只有几分之一像素的单位??或者可能是其他单位,所以我的给定位置 Point1 是第一个图标的 X100 Y100,而另一个不是在 200,200,实际上是在 200.33、200.55 左右......这就是为什么我没有得到死锁位置/位置?ps 我认为如果不是它,它正在使用 diretx'是否存在小于像素的单位......并且常用? 如果不是,你将如何实现一个从 x100 到 x150 和 y100 到 y150 循环的函数,这样我就可以搜索图像
c# - 截屏并转换为 Byte[](图像比较方法)
我有一些关于图像比较的帖子,我尝试保存从屏幕捕获的图像,然后将其存储在文件系统中。
我使用转换方法将捕获的图像转换byte[]
为以供以后使用。
然后,当我想将它与第二个屏幕截图进行比较时,我加载(保存到的文件byte[]
)并将其与byte[]
以相同方式转换为的新截图进行比较。
现在,当同时进行第一次捕获和第二次捕获时,在内存中,进行比较的方法很少,我想首先与其他人分享这篇文章以寻找相同的答案并让我知道:
哪个更快,我如何控制相似度的百分比?
如果选择(相等的)百分比反对最快的计算方式......我可以忽略它,尽管当性能问题不存在时我可以在其他项目中使用它,并根据其需要
这些是我知道可用于完成任务的代码
我想与您核实更快的想法,以及是否有更好的方法,无论是否有平等百分比。谢谢你。
对比
后者正在使用System.Security.Cryptography
java - java.util.zip.CRC32 比较图像文件
是否有任何建议(一段代码)可以帮助我理解如何比较两个不同的图像文件(无论它们是否相同)的概念?
提前致谢。
编辑:我的意思是,例如,我应该通过文件大小检查来检查 CRC32(我不知道该怎么做)。那么这意味着它们是相同的图片......
EDIT2:当我说图像相同时,我的意思是图像对用户来说看起来完全一样。
opencv - 比较两幅图像特定区域的直方图?开放式CV
基本上,我希望能够比较两个直方图,但不是整个图像只是特定区域。我有图像 A,上面有一个特定的矩形区域,我想与另一个图像 B 进行比较。有没有办法获得图像上可定义矩形区域的直方图?我有矩形区域的 xy 位置,以及它的宽度和高度,并想得到它的直方图。我正在将opencv与python一起使用。
抱歉,如果不是很清楚:(
(我正在设置一个为电路板拍照的程序,并检查每个焊盘与完美电路板图像的一致性。如果一个焊盘关闭,程序会发出一个标志,表示特定焊盘关闭x%,而不是整个董事会。
matlab - 卡在 Matlab 的子图机制上,用于匹配图像的 vlfeat 点
我在 Matlab 中做 vlfeat,我在这里关注这个问题。
以下是我的简单测试图像:
左图:
右图:
我在这里用两张简单的图像做了一个简单的测试(右图只是左图的旋转版本),我得到了相应的结果:
它有效,但我还有一个要求,即匹配两个图像的 SIFT 点并显示它们,如下所示:
我知道 vl_ubcmatch 返回 2 个匹配索引数组,并且将它们映射到两个图像上的哪个点到哪个点不是问题。但是,我目前被困在 matlab 的程序中。我找到了这个。但这只有在子情节保持这种状态时才有效。当您将图像添加到子图中时,大小会发生变化并且标准化失败。
这是我的代码:(im 和 im2 是图像。f、d 和 f2、d2 分别是来自 2 个图像的 vl_sift 函数的帧和描述符)
上面的代码产生了这个:
我认为 subplot 不是解决此类问题的好方法。Matlab中是否有更好的方法?如果可能的话,我想要一个空面板之类的东西,我可以绘制我的图像、自由绘制线条和自由缩放,就像以 OpenGL 风格绘制 2D 游戏一样。
c# - 查找屏幕共享应用程序的两个图像之间的差异
您好我正在编写一个客户端/服务器远程查看器(桌面共享)应用程序,其中桌面的屏幕截图通过套接字通过网络发送。我想通过获取两个图像之间的差异然后发送差异来减少传输的大小。另一方面,差异将与另一端的先前图像合并。
所以请任何人指导我如何完成这项工作。现在我仍然每次通过网络以编程方式发送屏幕的完整图像,而另一端的程序只显示该图像。我觉得巨大的数据正在通过网络传递,另一端的屏幕更新速度很慢。所以请告诉我如何比较两个图像并仅将差异发送到另一端的好方法。还告诉我如何将差异与另一端的实际图像合并。
1) 有很多免费代码和库可用于图像比较,但我只是不明白我应该使用哪一个,哪一个会更快进行比较。所以请指导我。
2)最重要的部分是如何仅通过网络发送差异并将差异与另一端的实际图像合并
我尝试了很多关于我的第 2 点的信息,但没有得到类似的信息。没有文章我发现谁能指导我如何仅通过网络发送差异并将差异与另一端的实际图像合并
所以我正在寻找针对我的第 2 点的深入讨论。谢谢
c# - 比较两个图像并使用 emgu cv 库提取差异
我想比较两个图像,如 image1.png 和 image2.png.both 图像看起来非常相似,但有一些不同。所以我想得到差异并想在第一个图像 image1.png 上应用差异。我搜索了很多以获取该库的类似代码,但没有找到。
经过大量搜索后,我得到了一些类似的东西,我在 java 代码中寻找。这是网址http://mindmeat.blogspot.in/2008/07/java-image-comparison.html
请转到网址,在那里您可以看到代码生成的第三张图片有所不同,但我的要求有点不同。我不想生成第三张图像,而是想在第一张图像 image1.png 上应用差异。有人告诉我,使用 emgu cv 库可以很容易地完成。所以我根据 emgu cv 库搜索类似的代码,但没有找到。任何人都可以使用 emgu cv 库指导我使用示例代码,这对我有很大帮助。
谢谢