使用emgu cv库比较两幅图像并提取差异。
我想比较两个图像,例如image1.png和image2.png.图像看起来都相同,并且有所不同.因此,我想获得差异,并希望在第一个Image1.png上应用差异.我搜索了很多东西,以获取此库的类似代码,但没有发现. 经过大量搜索,我在Java代码中找到了一些类似的东西.这是url /java-image-comparison.html 请转到URL,您可以看到代码生成的第三张图像不同,但我的要求有些不同.我不想生成第三张图像,而是想在第1 image1.png上应用差异.有人告诉我,通过Emgu CV库可以很容易地完成.因此,我搜索基于EMGU CV库的类似代码,但发现否.很棒的帮助我,任何人都可以使用EMGU CV库来指导我. 谢谢 解决方案 我认为您需要的是: image1 = image2 -image1; 由于操作员的重载,这是直接在EMGU CV 中的可能性
4 2024-04-22
编程技术问答社区
如何用php计算出两张图片的相似度?
有两个JPG文件二进制数据,如何使用PHP确定其相似程度. 如果可以从二进制代码中获取颜色信息,那么服务器不能进行Surport GD,它是代表服务器. 解决方案 这些先前的问题似乎是相关的: 我如何衡量两个图像之间的相似性?/a> 图像指纹比较许多图像的相似性 可以使用哪种算法来识别图像是"相同"还是相似,无论大小如何? 重复图像检测算法? 类似的图像搜索软件(例如Tineye) 寻找图像相似性库't关心图像尺寸
8 2024-03-30
编程技术问答社区
如何使用Node.js比较两张图片
我正在寻找一种比较两个图像以查看它们的相似之处的方法.谷歌搜索它会产生大量的图像处理结果(裁剪,重新尺寸等),但没有什么可以对图像进行近似比较.有一个node.js库,但它是0.0.1版本,依赖于各种第三方系统软件包,因此不稳定或便携. 沿着这些行: var imgComparator = require('some-awesome-image-comparator-module'); // result would be between 1.0 and 0.0, where 1.0 would mean exact match var result = imgComparator.compare('/path/to/image/1.png', '/path/to/image/2.png'); 解决方案 有 node-opencv 模块,您可以使用它来执行它诸如图像比较之类的重型操作.好主题在这里:简单而快速的方法来比较图像相似性 其他解决方案 还有 image
36 2024-03-21
编程技术问答社区
安卓系统中的OpenCV图像比较
[edit] 我设计了一些代码供图像比较.匹配的部分仍然有些缺陷,我很乐意一些助理.该项目可以在-e github . . 我有这两个图像 img1 和 img2 : 当我在OpenCV中使用以下命令 Mat img1 = Highgui.imread("mnt/sdcard/IMG-20121228.jpg"); Mat img2 = Highgui.imread("mnt/sdcard/IMG-20121228-1.jpg"); try{ double l2_norm = Core.norm( img1, img2 ); tv.setText(l2_norm+""); } catch(Exception e) { //image is not a duplicate } 我获得了L2_NORM的双重值.该双重值在重复的图像对方面有所不同.但是,如果图像不同,则会抛出一个例外.这是我识别重复图像的方式吗?还是有更好的方法?我已经广泛搜索过,
34 2024-01-27
编程技术问答社区
如何识别图像中的UI元素?
我正在尝试制作一个自动工具,并正在尝试一种录音类型,该录音会拍摄屏幕截图并记录用户输入.这个想法是让用户拍摄快照,并在"提交"按钮的快照上突出显示正方形.在播放期间,该程序将进行打开窗口的sceenshot,并通过搜索快照来找到按钮的坐标.因此,我需要一种算法来搜索图像以获取按钮的精确(或非常紧密的)图像.到目前为止,我发现的算法比较了图像的相似性,但在子图像中找不到它,并且考虑到"对象"试图找到的"对象",对象识别算法似乎有点完美.有什么想法吗? 解决方案 您需要的是有效的特征提取方法.这将取决于您要寻找的内容,但假设您正在寻找此图像中的发送按钮: 此按钮的特征之一是它在顶部和底部包含一对平行线段.这两个文本输入字段也是如此,但是对于该按钮,此偏移量正好为17像素. ,如果您计算源图像的最大像素值以及本身垂直移动17像素: ,这就是您得到的: 发送按钮现在以固体水平线的形式出现.您可以通过阈值图像和寻找不间断的黑色像素序列来很容易地检测到这一点.仅供参考
36 2024-01-23
编程技术问答社区
使用粗糙的灰度算法的问题?
所以我正在设计一些用于使用PIL编辑照片的程序,其中一个是将图像转换为灰度(我避免使用PIL>的任何功能). 我使用的算法很简单:对于每个像素(颜色深度为24),我已经计算了R,G和B值的平均值,并将RGB值设置为平均. 我的程序正在制作似乎准确的灰度图像,但是我想知道我是否使用了正确的算法,我遇到了这个答案对一个问题,似乎"正确"算法是在哪里计算0.299 R + 0.587 G + 0.114 B. 我决定将我的程序与该算法进行比较.我使用我的程序生成了一个灰度图像,另一个(使用相同输入)从在线网站( 'image to grayscale'. 的顶级Google结果 在我的肉眼中,它们似乎完全一样,如果有任何变化,我看不到它.但是,我决定使用这个网站('compare two images online'的顶级Google结果)比较我的Greyscale Image .事实证明,像素深处,它们有轻微的变化,但是没有人可以乍一看人眼可感知的(可以发现差异,但通常只有
寻找相似图像的算法
我需要一种算法,可以确定两个图像是否"相似",并识别相似的颜色,亮度,形状等.我可能需要一些指针,即人类大脑用来"分类"图像的参数. .. 我研究了基于Hausdorff的匹配,但这似乎主要用于匹配变换的对象和形状模式. 解决方案 我做了类似的事情,通过使用我的方法是从每个变换的通道中选择最显着的 n 系数,并记录其位置.这是通过根据ABS(Power)对(功率,位置)元素列表进行排序来完成的.相似的图像将共享相似之处,因为它们在同一位置将具有重要的系数. 我发现最好将图像转换为YUV格式,从而有效地使您可以在形状(y通道)和颜色(UV通道)上加权相似性. 您可以在 mactorii 中找到我的上述实现.我应该做的尽可能多的工作: - ) 我的一些朋友以令人惊讶的好结果使用的另一种方法是简单地调整您的图像,以说是一个4x4像素,然后将其存储为您的签名.可以说,计算其他解决方案 phash 可能会让您感兴趣. 感知哈希.基于其中包含的音频或视觉内容的
12 2024-01-22
编程技术问答社区
比较两幅图像以检查它们是否相同
哪种有效的方法比较两个图像(位图),检查它们是否相同? 我试图记录我,并且已经读到我需要将这两个图像大小尺寸重新尺寸为16x16px,但我没有得到预期的结果. 我尝试使用.Equals比较调整大小的图像: If img1.Equals(img2) then msgbox("are equals!") End if 我已经看过 aforge 图像库,但我在里面找不到比较图像的方法. 是否可以使用.NET类或第三方LIB进行有效的图像比较,而无需硬码每个像素图像比较?如果不是,则有任何函数的示例比较图像? 解决方案 您需要仔细考虑您的要求以及平等的含义.如果您通过像素比较进行直接像素,那么您可以找到许多.NET映像类来帮助解决此问题(我不是.NET专家,但请尝试当然,实现简单的直接图像差异非常容易.您甚至可以允许与差异 SIFT第三方工具是比较可能会有略有变化的图像的好方法,但是您可能必须进行系统调用,因为我不确定它们是
28 2024-01-06
编程技术问答社区
aforge图像与UWP的比较
我正在使用portable.aforge.imaging进行UWP项目的图像比较.该方法过程图需要作为参数的位图类型.我正在使用system.drawing访问bitmap类,但是当我尝试实例化时,我会遇到错误:"位图不包含一个构造函数,该构造函数是1个参数" UWP上有常规位图类吗?如果是,我做错了什么?如果没有,我必须使用Aforge的过程图表进行比较? private void TestAForge() { ExhaustiveTemplateMatching tm = new ExhaustiveTemplateMatching(0); Bitmap image, template; //fetch Bitmaps image = new Bitmap("MyDir/myImage.jpg"); template = new Bitmap("MyDir/myImage.j
30 2023-12-10
编程技术问答社区
opencv从网络摄像头捕捉图像,无需后期处理
我想从网络摄像头捕获图像,而无需任何帖子处理,即 no 自动焦点,曝光校正,白平衡和其他东西.好吧,基本上,我想从网络摄像头捕获连续的帧,并使每个帧与上一个帧进行比较,并仅在发生实际更改时将它们保存到磁盘.因为帖子处理几乎每个帧都被返回给我. 到目前为止的代码 using namespace cv; bool identical(cv::Mat m1, cv::Mat m2) { if ( m1.cols != m2.cols || m1.rows != m2.rows || m1.channels() != m2.channels() || m1.type() != m2.type() ) { return false; } for ( int i = 0; i (i, j) != m2
6 2023-11-20
编程技术问答社区
jMagick-image的比较
我正在尝试开发一个程序,该程序将使用网页的快照,然后将其与旧的更改进行比较. 我正在使用 selenium- web driver 用于拍摄快照.为了进行图像处理和比较,稍作谷歌搜索后,我找到了但是由于缺乏适当的文档,我找不到任何相关的东西.如果有人可以帮助我使用任何代码示例以进行图像比较,这真的很有帮助. 再次,问题是要比较两个图像并突出两者之间的变化或差异.输出可能是第三张图像,突出显示了差异. 可能的重复项是: this 和 this .但同样,从这些方面无法推断出任何适当的解决方案. 如果有人可以对此进行一些启发,或者可能是Java中的其他解决方案. 解决方案 boolean compareSuccess = compareImages("src/main/1.jpg","src/test/resources/bag_frame2.gif", "src/test/resources/ex.gif"); //(input1,input2,outpu
8 2023-08-27
编程技术问答社区
在Python中比较URL中的图像和文件系统中的图像
是否有一种快速简便的方法进行此类比较? 我发现的图像很少比较stackoverflow的问题,但是这些问题实际上没有证明这个问题的答案. 我在文件系统中有图像文件,一个脚本从URL中获取图像.我想检查URL中的图像是否已经与磁盘上的图像相同.通常,我会将图像加载到磁盘中,并将URL加载到PIL对象,并使用以下功能,我发现: def equal(im1, im2): return ImageChops.difference(im1, im2).getbbox() is None 但是,如果您将图像保存到PIL上,即使您将质量转换为100 im1.save(outfile,quality=100),这也不起作用. 我的代码目前正在遵循: http://pastebin.com/295kdmsp 但是图像总是最终被重新保存. 解决方案 问题的标题表明您有两个精确的图像可以比较,这是微不足道的.现在,如果您有类似的图像可以进行比较,则说明了为什么找不到
22 2023-07-15
编程技术问答社区
比较两幅图像的特定区域的直方图?OpenCV
基本上,我希望能够比较两个直方图,但不仅可以比较整个图像.我有图像A并在其上有一个特定的矩形区域,我想将其与另一个图像B进行比较.是否有办法在图像上获取可定义的矩形区域的直方图?我有矩形区域的X y位置,以及其宽度和高度,并希望获得其直方图.我正在与Python一起使用OpenCV. 对不起,如果不是很清楚:( (我正在设置一个程序,该程序拍摄电路板的图片,并检查每个焊接垫以与完美板的图像保持一致.如果一个垫子打开由x百分比关闭,而不是整个董事会. 解决方案 注意:以下内容在C ++中,但我认为很难找到Python的等效函数. 您可以使用 this 教程.因此,例如,对于Lena图像,我们得到: 在您的情况下,由于您具有矩形坐标,因此只需提取图像的ROI: // C++ code cv::Mat image = cv::imread("lena.png", 0); cv::Rect roiRect = cv::Rect(150, 150, 250,
84 2023-07-12
编程技术问答社区
如何检查具有不同像素化的两个图像的相似性
我正在运行Python代码以检查Quora和Twitter用户的相似性,但是当图像相同时,我不会得到积极的结果. 这是比较这两个图像的代码: path_photo_quora= "/home/yousuf/Desktop/quora_photo.jpg" path_photo_twitter="/home/yousuf/Desktop/twitter_photo.jpeg" if open(path_photo_quora,"rb").read() == open(path_photo_twitter,"rb").read(): print('photos profile are identical') 尽管图像相同,但控制台并没有打印"照片配置文件相同",我该怎么办? 解决方案 您可以使用 imageHash 库来比较类似的图像. from PIL import Image import imagehash hash0 = imagehash.a
16 2023-06-23
编程技术问答社区
php中的图像比较
我的情况如下: 我必须将1000张图像保存在数据库中,然后我必须将新图像与数据库图像进行比较(匹配应为70%或更多),以从PHP中的数据库中获取最佳的匹配图像. . 是否有任何算法或方法可以快速比较更好的结果... 预先感谢:) 解决方案 尝试此类.它支持从图像中获取哈希字符串并存储在数据库中,然后与新图像进行比较: https://github.com/nvthaovn/compareimage 尽管不是最佳代码,但它是非常快速准确的.我的数据库中有20000张图片. 其他解决方案 我建议您使用感知性哈希或类似性 - 主要是出于性能的原因.从本质上讲,您在数据库中插入数据库中的每个图像并保留数据库中的哈希时,为每个图像创建一个数字或哈希.然后,当您获取新图像以插入时,您将其计算其哈希,并将其与所有其他图像的预定哈希进行比较,以便您不必将现有图像的所有像素的所有兆字节拖动从磁盘上进行比较他们. 最好的phashes是比例不变和图像格式不变的.这是N
20 2023-05-27
编程技术问答社区
使用SIFT搜索图像数据库
几个 /how-to-sift-sift-algorithm to-compute-similiariar-two-images-are">问题"/wiki/scale-invariant_feature_transform" rel =" nofollow noreferrer"> sift算法,但它们似乎都集中在两个图像之间的简单比较上.与其确定两个图像的相似之处,不如使用SIFT从成千上万张图像中找到最接近的匹配图像是可行的吗?换句话说,筛分可伸缩? 例如,使用sift生成一批图像的关键点,将关键点存储在数据库中,然后找到具有最短的欧几里得距离的关键点,该关键点可以与" Query"图像生成的欧几里得距离最短的距离. ? 计算欧几里得距离时,您是否会忽略关键点的x,y,比例和方向部分,而仅查看描述符? 解决方案 有几种方法. 一种流行的方法是所谓的单词表示袋,它仅基于数量的描述符匹配,因此忽略了包含(x,y,scale和arientation)的位置部分,
62 2023-05-21
编程技术问答社区
如何使用SIFT算法来计算两幅图像的相似程度?
我已经使用了 href =" http://www.vlfeat.org/overview/sift.html" rel =" noreferrer"> andrea vedaldi ,计算两个相似图像的筛分(实际上,第二张图像是从不同角度放大相同对象的图片). 现在,我无法弄清楚如何比较描述符以说明图像的相似之处? 我知道这个问题是不可回答的,除非您以前实际玩过这类问题,但是我认为以前做过此事的人可能知道这个,所以我发布了一个问题. 我为生成描述符而做的小: >> i=imread('p1.jpg'); >> j=imread('p2.jpg'); >> i=rgb2gray(i); >> j=rgb2gray(j); >> [a, b]=sift(i); % a has the frames and b has the descriptors >> [c, d]=sift(j); 解决方案 首先,您不应该使用VL_SIFT而不是SIFT? 第二,
46 2023-05-21
编程技术问答社区
如何用canny管理图像比较中的MIN_MATCH_COUNT?
我正在使用Canny进行图像比较.在使用Canny Image Edging进行比较后,我将获得正确的匹配和非匹配对象结果结果.有时,它没有给出正确的结果,为此,我需要继续更改min_match_count. 保持MIN_MATCH_COUNT和CANNY的任何解决方案都应比较图像的每个边缘. MIN_MATCH_COUNT = 20 img1 = canny.copy() img2 = canny1.copy() # Initiate SIFT detector sift = cv.SIFT_create() # find the keypoints and descriptors with SIFT kp1, des1 = sift.detectAndCompute(img1,None) kp2, des2 = sift.detectAndCompute(img2,None) FLANN_INDEX_KDTREE = 1 index_params = dict(algor
10 2023-05-16
编程技术问答社区
在iOS中检查图像中是否存在子图像
我有2个图像,例如较小的图像和较大图像.现在,我想检查是否较小图像是较大图像的一部分(或子图像).我没有得到如何检查.我想在iOS中这样做. Gogling后,我知道使用OpenCV库是最适合此类物品的库.但是我没有得到如何使用OpenCV库来执行我的任务. 简而言之,我想知道, 1)在较大图像中查找/检查子图像的不同技术/方法/算法 2)如何使用openCV库执行(1).(即如何使用它以较大图像检查子图像) 解决方案 您可以使用OpenNCV模板匹配算法.. 请尝试.. 从 https://github.com/fl0p/opencv-ios 下载opencv2.framework. 从/master/opencvclient 导入文件opencv2/nonfree/nonfree.hpp,opencv2/highgui/highgui.hpp,opencv2/calib3d/calib3d/calib3d.hpp,uiimage+op
16 2023-05-09
编程技术问答社区
匹配模板图像(按比例)到主/大图像
我想在主图像中查看/检查子图像/模板图像,并想知道其坐标, 我使用以下链接时使用的代码来实现它, 在iOS 如果模板图像的大小与较大图像的匹配部分的大小完全相同,则它的工作正常. ,但是如果将子图像缩放或缩放比匹配较大图像的部分,则不能正确地给出结果. 解决方案 使用OPENCV功能检测.它比模板匹配更准确. 请尝试此代码. -(void)featureDetection:(UIImage*)largerImage withImage:(UIImage*)subImage { cv::Mat tempMat1 = [largerImage CVMat]; cv::Mat tempMat2 = [subImage CVMat]; cv::cvtColor(tempMat1, tempMat1, CV_RGB2GRAY); cv::cvtColor(tempMat2, tempMat2, CV_RGB2GRAY);