CN111428791B - 图像对比方法及装置 - Google Patents

图像对比方法及装置 Download PDF

Info

Publication number
CN111428791B
CN111428791B CN202010225450.6A CN202010225450A CN111428791B CN 111428791 B CN111428791 B CN 111428791B CN 202010225450 A CN202010225450 A CN 202010225450A CN 111428791 B CN111428791 B CN 111428791B
Authority
CN
China
Prior art keywords
matrix
difference
picture
determining
comparison
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010225450.6A
Other languages
English (en)
Other versions
CN111428791A (zh
Inventor
李智远
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Hujin Xinrong Technology Co ltd
Original Assignee
Beijing Hujin Xinrong Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Hujin Xinrong Technology Co ltd filed Critical Beijing Hujin Xinrong Technology Co ltd
Priority to CN202010225450.6A priority Critical patent/CN111428791B/zh
Publication of CN111428791A publication Critical patent/CN111428791A/zh
Application granted granted Critical
Publication of CN111428791B publication Critical patent/CN111428791B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Image Processing (AREA)

Abstract

本发明公开了一种图像对比方法及装置。其中,该方法包括:将第一图片转化为第一矩阵,将第二图片转化为第二矩阵,确定第一矩阵和第二矩阵的第一差集;将第一差集与预设的忽略比较模板矩阵进行叠加,确定第一图片和第二图片的第一差异像素;根据第一差异像素确定第一图片和第二图片的对比结果。本发明解决了相关技术中图片对比一般采用对图片的逐个像素进行对比的方式,存在不需要对比的部分区域,导致对比效果差的技术问题。

Description

图像对比方法及装置
技术领域
本发明涉及图片处理领域,具体而言,涉及一种图像对比方法及装置。
背景技术
在UI自动化测试框架中,需要对实际的手机截图图片和期望的手机截图图片进行对比,以验证当前手机上客户端里实际展示的页面是不是正确的。其中,期望的手机截图是手机上客户端里展示的正确的页面,也就是图片,文本,控件(按钮,选择框等),和其他界面样式均正常,一般是使用已经正式发布的客户端来进行页面截图;实际的手机截图是在测试环境中执行测试时,在手机上客户端里展示的页面,在测试手机上进行截图。
对实际和期望的手机截图进行对比时,一般是使用图片的逐个像素进行对比,判断异同;对于2次截图的颜色展现有轻微偏差的情况,还可以通过设置一个大于0的整数作为色差阈值,当2个像素点的差值小于等于色差阈值时则认为是像素点颜色相同,大于色差阈值认为是像素点颜色不同;如果2个图片所有像素均相同则认为2个图片是相同,否则认为2个图片是有差异的,并标识出有差异的元素点。无法对图片区域进行甄别,在对比图片存在不需要对比的部分区域,会导致对比效果差的问题,而且当对比的图片颜色存在偏差时,当前的方法需要手工指定一个可以容忍的色差阈值,该色差阈值需要依赖当前实际场景情况。设置偏小时会造成误报,存在色差的部分被标记为有差异;设置偏大时会造成对差异不敏感,从而可能漏掉实际截图中的差异。故灵活性和实际效果都比较差。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种图像对比方法及装置,以至少解决相关技术中图片对比一般采用对图片的逐个像素进行对比的方式,存在不需要对比的部分区域,导致对比效果差的技术问题。
根据本发明实施例的一个方面,提供了一种图像对比方法,包括:将第一图片转化为第一矩阵,将第二图片转化为第二矩阵,确定所述第一矩阵和所述第二矩阵的第一差集;将所述第一差集与预设的忽略比较模板矩阵进行叠加,确定所述第一图片和所述第二图片的第一差异像素;根据所述第一差异像素确定所述第一图片和所述第二图片的对比结果。
可选的,将第一图片转化为第一矩阵,将第二图片转化为第二矩阵,确定所述第一矩阵和所述第二矩阵的第一差集包括:对所述第一图片的所述第一矩阵,通过多个偏移量进行多次偏移确定多个所述偏移量分别对应的第二差异像素的数量;根据所述第二差异像素的数量最少的偏移量的情况下的第一矩阵,与所述第二矩阵确定所述第一差集。
可选的,对所述第一图片的所述第一矩阵,通过多个偏移量进行多次偏移确定多个所述偏移量分别对应的差异像素数量包括:在预设的偏移范围内确定多个偏移量;根据所述偏移量对所述第一矩阵进行偏移,确定偏移后的所述第一矩阵与所述第二矩阵的所述第二差异像素的数量;逐个遍历多个所述偏移量,确定多个所述偏移量对应的所述第二差异像素的数量。
可选的,根据所述偏移量对所述第一矩阵进行偏移,确定偏移后的所述第一矩阵与所述第二矩阵的第二差异像素数量包括:对偏移后的所述第一矩阵和所述第二矩阵求第二差集;对所述第二差集进行二值化,确定所述第二差集中的像素与周围范围内的像素的比较结果为有差异的第一像素值或无差异的第二像素值;对二值化后的所述第二差集进行滤波处理;统计所述第二差集中像素值为所述第一像素值的第二差异像素的数量。
可选的,将所述第一差集与预设的忽略比较模板矩阵进行叠加,确定所述第一矩阵和所述第二矩阵的第一差异像素包括:对所述第一差集进行二值化,确定所述第一差集中的像素与周围范围内的像素的比较结果为有差异的第一像素值或无差异的第二像素值;将所述第一差集与所述忽略比较模板矩阵进行叠加,确定所述第一差集与所述忽略比较模板矩阵的合集,其中,所述忽略比较模板矩阵中忽略比较区域的像素值为第三像素值;确定所述合集中像素值为所述第一像素值的像素为所述第一差异像素,其中,在所述第一差集与所述忽略比较模板矩阵的叠加过程中同一位置的像素的像素值相加。
可选的,将所述第一差集与所述忽略比较模板矩阵进行叠加,确定所述第一差集与所述忽略比较模板矩阵的合集之前,还包括:对二值化后的所述第一差集进行滤波处理;对滤波处理后的所述第一差集进行先膨胀后腐蚀的处理方式,将所述第一差集中邻近的像素值为所述第一像素值的第一差异像素连接起来。
可选的,根据所述第一差异像素确定所述第一图片和所述第二图片的对比结果包括:根据所述第一差异像素在所述第一图片上的位置,将所述第一差异像素在所述第一图片上进行标示,生成对比结果图片。
根据本发明实施例的另一方面,还提供了一种图像对比装置,包括:转化模块,用于确定需要进行对比的第一图片和第二图片分别转化的第一矩阵和第二矩阵的第一差集;叠加模块,用于将所述第一差集与预设的忽略比较模板矩阵进行叠加,确定所述第一矩阵和所述第二矩阵的第一差异像素;对比模块,用于根据所述第一差异像素确定所述第一图片和所述第二图片的对比结果。
根据本发明实施例的另一方面,还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述中任意一项所述的图像对比方法。
根据本发明实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述中任意一项所述的图像对比方法。
在本发明实施例中,采用将第一图片转化为第一矩阵,将第二图片转化为第二矩阵,确定第一矩阵和第二矩阵的第一差集;将第一差集与预设的忽略比较模板矩阵进行叠加,确定第一图片和第二图片的第一差异像素;根据第一差异像素确定第一图片和第二图片的对比结果的方式,通过忽略比较模板矩阵对第一图片和第二图片中的比较区域进行甄别,达到了有针对性的对第一图片和第二图片进行比较的目的,从而实现了优化图片对比效果的技术效果,进而解决了相关技术中图片对比一般采用对图片的逐个像素进行对比的方式,存在不需要对比的部分区域,导致对比效果差的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种图像对比方法的流程图;
图2-1是根据本发明实施方式的期望的截图的示意图;
图2-2是根据本发明实施方式的实际的截图的示意图;
图2-3是根据本发明实施方式的差异区域标记的示意图;
图3是根据本发明实施方式的截图对比方法的流程图;
图4是根据本发明实施例的一种图像对比装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,提供了一种图像对比方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种图像对比方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,将第一图片转化为第一矩阵,将第二图片转化为第二矩阵,确定第一矩阵和第二矩阵的第一差集;
步骤S104,将第一差集与预设的忽略比较模板矩阵进行叠加,确定第一图片和第二图片的第一差异像素;
步骤S106,根据第一差异像素确定第一图片和第二图片的对比结果。
通过上述步骤,采用将第一图片转化为第一矩阵,将第二图片转化为第二矩阵,确定第一矩阵和第二矩阵的第一差集;将第一差集与预设的忽略比较模板矩阵进行叠加,确定第一图片和第二图片的第一差异像素;根据第一差异像素确定第一图片和第二图片的对比结果的方式,通过忽略比较模板矩阵对第一图片和第二图片中的比较区域进行甄别,达到了有针对性的对第一图片和第二图片进行比较的目的,从而实现了优化图片对比效果的技术效果,进而解决了相关技术中图片对比一般采用对图片的逐个像素进行对比的方式,存在不需要对比的部分区域,导致对比效果差的技术问题。
上述第一图片和上述第二图片可以为截图,一般是使用图片的逐个像素进行对比,判断对比的第一图片和第二图片的异同。当期望的截图和实际的截图的颜色有轻微偏差时,像素对比的方法需要人工指定一个可以容忍的色差阈值,该色差阈值需要依赖当前实际场景情况。设置偏小时会造成误报,存在色差的部分被标记为有差异;设置偏大时会造成对差异不敏感,从而可能漏掉实际截图中的差异,导致灵活性和实际效果都比较差。
本申请通过将需要比较的第一图片和第二图片转换为对应的第一矩阵和第二矩阵,通过对第一矩阵和第二矩阵求第一差集,确定第一图片和第二图片的差异,消除颜色对图片对比的影响,从而通过灰度对图片进行比较,不仅方便后续处理,而且保证了图片对比的精准度,有效提高使用灵活性和使用效果。
具体的,以手机截图为例,原始格式为png格式,转换为OpenCV可以处理的矩阵格式,使用OpenCV的LoadImage方法把图片读取为iplimage格式,设置flag=0在读取时彩色图片会被转换为单通道灰度图片,以方便后续处理。
另外,截图所对应的应用程序,在有些业务场景下,存在对比时需要忽略的区域,例如,页面上有滚动的通知消息,则通知消息所在的区域需要在对比时忽略掉,否则在对比图片时会造成干扰。采用像素对比的方式难以对预定区域进行忽略。
本申请通过将第一差集与预设的忽略比较模板矩阵进行叠加,确定第一图片和第二图片的第一差异像素,从而忽略第一图片和第二图片需要忽略的图片区域,只对第一图片和第二图片之外的区域的差异进行比较,确定第一差异像素。从而实现有针对性的对第一图片和第二图片进行比较,解决了相关技术中图片对比一般采用对图片的逐个像素进行对比的方式,存在不需要对比的部分区域,导致对比效果差的技术问题。
根据第一差异像素确定第一图片和第二图片的对比结果,可以根据上述第一差异像素对第一图片或第二图片进行标记,从而生成最终的对比结果图片,直观的将对比结果展现给用户。
可选的,将第一图片转化为第一矩阵,将第二图片转化为第二矩阵,确定第一矩阵和第二矩阵的第一差集包括:对第一图片的第一矩阵,通过多个偏移量进行多次偏移确定多个偏移量分别对应的第二差异像素的数量;根据第二差异像素的数量最少的偏移量的情况下的第一矩阵,与第二矩阵确定第一差集。
由于截图是在用户通过一定操作进行截屏,截屏之前会对手机进行滑屏等一系列操作,有可能使需要对比的期望的截图和实际的截图在上下方向的滚动长度有像素级别的微小差异,而造成图片按照像素对比的方式进行比较时,因为对比的像素是错位的,通过像素对比的方式进行对比,可能导致对比结果与事实完全相反。
因此通过在一定范围内多次对第一图片相对于第二图片进行偏移,并进行比较,确定每次偏移量对应的第二差异像素数量,在第一图片和第二图片像素对应的情况下,第一图片和第二图片的第二差异像素的数量最少,在此位置的基础上,对比第一图片和第二图片,可以准确的确定第一图片和第二图片的差异,从而提高第一图片和第二图片对比的准确性。
可选的,对第一图片的第一矩阵,通过多个偏移量进行多次偏移确定多个偏移量分别对应的差异像素数量包括:在预设的偏移范围内确定多个偏移量;根据偏移量对第一矩阵进行偏移,确定偏移后的第一矩阵与第二矩阵的第二差异像素的数量;逐个遍历多个偏移量,确定多个偏移量对应的第二差异像素的数量。
通过对偏移范围进行多个偏移量的划分,确定每次偏移的偏移量,逐个遍历多个偏移量,并记录偏移量对应的第二差异元素的数量。从而形成多次循环。
可选的,根据偏移量对第一矩阵进行偏移,确定偏移后的第一矩阵与第二矩阵的第二差异像素数量包括:对偏移后的第一矩阵和第二矩阵求第二差集;对第二差集进行二值化,确定第二差集中的像素与周围范围内的像素的比较结果为有差异的第一像素值或无差异的第二像素值;对二值化后的第二差集进行滤波处理;统计第二差集中像素值为第一像素值的第二差异像素的数量。
在确定第二差异像素数量时,先对偏移后的第一矩阵和第二矩阵求第二差集,对第二差集进行二值化,例如,通过自适应阈值化算法对第二差集矩阵进行二值化处理,将第二差集矩阵的每个元素根据和周边元素的均值的比较结果,来将该元素的灰度值设置为0或者255。这种自适应阈值化的方法可以自动、灵活的判断二值化的边界,从而可以避免手工设置一个绝对的色差阈值带来的不灵活和效果差的弊端。
可选的,将第一差集与预设的忽略比较模板矩阵进行叠加,确定第一矩阵和第二矩阵的第一差异像素包括:对第一差集进行二值化,确定第一差集中的像素与周围范围内的像素的比较结果为有差异的第一像素值或无差异的第二像素值;将第一差集与忽略比较模板矩阵进行叠加,确定第一差集与忽略比较模板矩阵的合集,其中,忽略比较模板矩阵中忽略比较区域的像素值为第三像素值;确定合集中像素值为第一像素值的像素为第一差异像素,其中,在第一差集与忽略比较模板矩阵的叠加过程中同一位置的像素的像素值相加。
第一差集矩阵也可以进行二值化,以确定像素值为第二像素值的无差异的元素,和像素值为第一像素值的有差异的元素。确定比较忽略模板矩阵中需要忽略的元素的像素职位第三像素值,则通过叠加第一差集和比较忽略模板矩阵,处于忽略区域的元素,通过叠加,不论是第一像素值对应的有差异元素和第二像素值对应的无差异元素都变成了非第一像素值的无差异元素,从而实现对比较忽略区域的元素进行忽略的目的。
需要说明的是,上述第二像素值与第三像素值的和不等于第一像素值,或者第二像素值大于第一像素值,则加上一个非零的第三像素值,可实现上述目的。
可选的,将第一差集与忽略比较模板矩阵进行叠加,确定第一差集与忽略比较模板矩阵的合集之前,还包括:对二值化后的第一差集进行滤波处理;对滤波处理后的第一差集进行先膨胀后腐蚀的处理方式,将第一差集中邻近的像素值为第一像素值的第一差异像素连接起来。
对二值化的第一差集进行滤波处理,可以使得图片中差异部分的边界更平滑,并可以有效排除掉椒盐噪音类型的噪点对图片对比的影响。上述滤波处理可以通过OpenCV的Smooth算法实现。
对第一差集的差异部分进行先膨胀后腐蚀的算法,可以将临近的差异区域进行连接,从而在标记差异区域时获得更人性化的展示效果。膨胀和腐蚀都是图像处理中的一种通用算法。例如,OpenCV的Dilate和Erode算法。
可选的,根据第一差异像素确定第一图片和第二图片的对比结果包括:根据第一差异像素在第一图片上的位置,将第一差异像素在第一图片上进行标示,生成对比结果图片。
还可以将上述第一差异像素在第二图片上标示,生成对比结果图片。
具体的可以通过,复制上述第一差异像素,将第一图片或者第二图片中的对应像素渲染为预设颜色,以进行显示。从而更直观的将第一图片和第二图片差异进行显示,提高了了用户体验。
需要说明的是,本实施例还提供了一种可选的实施方式,下面对该实施方式进行详细说明。
本实施方式面向UI自动化测试框架中,进行手机截屏图片对比的场景。基于OpenCV(一个开源的计算机视觉库,实现了图像处理和计算机视觉方面的很多通用算法)来实现的,可以做到手机截屏图片对比时,忽略多个区域不进行比较,在客户端里的页面存在上下方向的滚动差异时仍可以有效进行比较,并对截图的颜色展示偏差进行自适应的调节和容差等。
相关技术中,有些业务场景需要在对比时忽略截图上的部分区域,例如页面上有滚动的通知消息,则通知消息所在的区域需要在对比时忽略掉,否则在对比图片时会造成干扰。这种场景目前的方法还不支持。
在截屏之前会对手机进行滑屏等一系列操作,故有可能期望的和实际的2次截图在上下方向的滚动长度有像素级别的微小差异,而造成图片按照像素对比的方式进行比较时,因为对比的像素是错位的,所以都不相同。
当期望的和实际的2次截图的颜色有轻微偏差时,当前的方法需要手工指定一个可以容忍的色差阈值,该色差阈值需要依赖当前实际场景情况。设置偏小时会造成误报,存在色差的部分被标记为有差异;设置偏大时会造成对差异不敏感,从而可能漏掉实际截图中的差异。故灵活性和实际效果都比较差。
本方案的功能是使用Python脚本编写,图片处理的相关算法都是基于OpenCV来实现,部署在flask框架下,通过web服务来提供图片对比的功能。
输入的是2张待对比的图片文件。
输出描述了图片是否存在差异。如果图片存在差异,还会给出一张差异结果图片,该差异结果图片上,使用颜色标记了2张图片对比的差异区域。
图2-1是根据本发明实施方式的期望的截图的示意图,图2-2是根据本发明实施方式的实际的截图的示意图,图2-3是根据本发明实施方式的差异区域标记的示意图,如图2-1所示的图片是期望的截图,如图2-2所示的图片是实际的截图,使用本方案对比后,发现上方的广告栏位置,2张图片的广告存在不同,就会给出差异结果图片,即第3张图片。如图2-3所示的图片中,广告栏位置已经被标记了黑色矩形框,表示是差异区域。
图3是根据本发明实施方式的截图对比方法的流程图,如图3所示,图片对比处理流程详细说明:
1)将输入图片转换为矩阵A,B
输入的图片是手机截图,原始格式为png格式(一种无损压缩的位图格式);需要转换为OpenCV可以处理的矩阵格式。
本方案具体实现时是使用OpenCV的LoadImage方法把图片读取为iplimage格式,设置flag=0在读取时彩色图片会被转换为单通道灰度图片,以方便后续处理。
期望的手机截图和实际的手机截图会分别转换为矩阵A和B。
2)循环处理:i>=-T&&i<=T;
其中T为需要处理的图片上下偏移量的最大值,单位为像素。默认值为5,也可以通过调用接口的参数来人工设置。i为自适应行数偏移行数
然后对[-T,T]区间进行循环,每次循环中都会先把矩阵位移之后再进行对比。
3)矩阵A位移i行;
当前循环为i时,先将矩阵A进行位移,当i为负数时,向上位移-i行;当i为正数时,向下位移i行。
本方案实现时使用了OpenCV的WarpAffine算法。
4)矩阵A-B求差集C;
对矩阵A和B求差集,即把矩阵A里的每个元素减去矩阵B里的相同位置的元素,差值写入矩阵C的相同位置。
本方案实现时使用了OpenCV的Sub算法。
5)对C进行自适应阈值化;
对C使用平均值的(对应OpenCV的参数ADAPTIVE_THRESH_MEAN_C)自适应阈值化算法来对矩阵C进行二值化。该步骤中,将矩阵C的每个元素根据和周边元素的均值的比较结果,来将该元素设置为0或者255。
这种自适应阈值化的方法可以自动、灵活的判断二值化的边界,从而可以避免手工设置一个绝对的色差阈值带来的不灵活和效果差的弊端。
本方案实现时使用了OpenCV的adaptiveThreshold算法。
6)对C进行中值滤波;
对C进行中值滤波,可以使得图片中差异部分的边界更平滑,并可以有效排除掉椒盐噪音类型的噪点对图片对比的影响。
本方案实现时使用了OpenCV的Smooth算法。
7)遍历C统计差异的元素个数;
对矩阵C的每个元素进行遍历,经过如上一系列的处理,如果该元素的值等于0,则该元素为2张图片的差异像素。统计这些差异像素的个数并记录,用于判断2张图片是否存在上下位移的偏差,以及如果存在上下位移的偏差的话,位移量是多少。
8)当对[-T,T]完成循环处理后,选择差异元素个数最少的位移k;
该位移的k值如果等于0,则表示2张图片不存在上下位移偏差;否则,即存在位移偏差,且偏差了k行像素。
9)C=A-B并处理位移元素;
对矩阵A和B求差集C之后,将C中位移的行的元素全部置为0(表示无差异)。例如k=2,表示向下位移了2行像素,则需要将C中的最上方2行元素全部置为0,即:[0,0],[0,1],...,[0,n-1];[1,0],[1,1],...,[1,n-1]置为0,其中n为矩阵C的宽度。
10)求差集C之后,进行同前步骤类似的自适应阈值化和中值滤波等处理;
这些处理的方法和目的已经如前所述。
11)对C进行先膨胀后腐蚀;
对C的差异部分进行先膨胀后腐蚀的算法,可以将临近的差异区域进行连接,从而在标记差异区域时获得更人性化的展示效果。
膨胀和腐蚀都是图像处理中的一种通用算法。
本方案实现时使用了OpenCV的Dilate和Erode算法。
12)初始化忽略比较模板D;
忽略比较模板D也是矩阵,用于标记需要忽略比较的区域,它和矩阵C大小一致。初始化为全0,表示需要参与对比。
13)将忽略比较区域叠加到D上;
从调用服务的参数里读取需要忽略比较区域的集合,这些忽略比较的区域均为矩形区域,使用矩形的左上角和右下角的2个坐标点来描述。
遍历忽略比较区域的集合,对每一个忽略比较区域,将其在D上对应的点全部标记为1。例如,忽略比较区域为(50,50),(100,100),则需要将D的[50,50],[50,51],...,[50,100];[51,50],[51,51],...,[51,100];...;[100,50],[100,51],...,[100,100]的元素均设置为1。
14)矩阵C=C+D;
矩阵C中值为0的元素表示有差异的元素,而矩阵D中值为1的元素表示需要忽略比较的元素,其他元素为0。将矩阵D加到矩阵C之后,需要忽略比较的元素其值肯定不为0,即表示无差异。
15)复制期望图片为差异结果图片和遍历C的差异元素,把结果图片中相同位置渲染为预设颜色;
这步是根据处理的结果来生成展示差异区域的结果图片。首先将期望的截图图片作为差异结果图片的底图,然后再在该图片上面使用预设颜色标记出差异的区域。例如,遍历C时,如果元素[i,j]的值为0,则需要将差异结果图片中位于坐标(i,j)的像素设置为(0,0,255),代表预设颜色。
本实施方式的图片对比方法可以很好地处理手机截图有上下方向位移,需要对部分区域忽略对比,截图有轻微的颜色偏差等场景。
本实施方式的方法在手机截图有上下方向的细微滚动错位时,仍可以自动判断出位移的偏移量并进行有效的图片对比。本实施方式的方法支持对多个矩形区域忽略对比。本实施方式的方法可以自动适应2次截图的颜色有轻微偏差的场景,不需要人工指定比较时可以容忍的色差阈值,而且在该场景下对比的效果不受影响。
图4是根据本发明实施例的一种图像对比装置的示意图,如图4所示,根据本发明实施例的另一方面,还提供了一种图像对比装置,包括:转化模块42,叠加模块44和对比模块46,下面对该装置进行详细说明。
转化模块42,用于确定需要进行对比的第一图片和第二图片分别转化的第一矩阵和第二矩阵的第一差集;叠加模块44,与上述转化模块42相连,用于将第一差集与预设的忽略比较模板矩阵进行叠加,确定第一矩阵和第二矩阵的第一差异像素;对比模块46,与上述叠加模块44相连,用于根据第一差异像素确定第一图片和第二图片的对比结果。
通过上述装置,采用转化模块42将第一图片转化为第一矩阵,将第二图片转化为第二矩阵,确定第一矩阵和第二矩阵的第一差集;叠加模块44将第一差集与预设的忽略比较模板矩阵进行叠加,确定第一图片和第二图片的第一差异像素;对比模块46根据第一差异像素确定第一图片和第二图片的对比结果的方式,通过忽略比较模板矩阵对第一图片和第二图片中的比较区域进行甄别,达到了有针对性的对第一图片和第二图片进行比较的目的,从而实现了优化图片对比效果的技术效果,进而解决了相关技术中图片对比一般采用对图片的逐个像素进行对比的方式,存在不需要对比的部分区域,导致对比效果差的技术问题。
根据本发明实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述中任意一项的图像对比方法。
根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述中任意一项的图像对比方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (9)

1.一种图像对比方法,其特征在于,包括:
将第一图片转化为第一矩阵,将第二图片转化为第二矩阵,确定所述第一矩阵和所述第二矩阵的第一差集;
将所述第一差集与预设的忽略比较模板矩阵进行叠加,确定所述第一图片和所述第二图片的第一差异像素;
根据所述第一差异像素确定所述第一图片和所述第二图片的对比结果;
将第一图片转化为第一矩阵,将第二图片转化为第二矩阵,确定所述第一矩阵和所述第二矩阵的第一差集包括:对所述第一图片的所述第一矩阵,通过多个偏移量进行多次偏移确定多个所述偏移量分别对应的第二差异像素的数量;根据所述第二差异像素的数量最少的偏移量的情况下的第一矩阵,与所述第二矩阵确定所述第一差集。
2.根据权利要求1所述的方法,其特征在于,对所述第一图片的所述第一矩阵,通过多个偏移量进行多次偏移确定多个所述偏移量分别对应的差异像素数量包括:
在预设的偏移范围内确定多个偏移量;
根据所述偏移量对所述第一矩阵进行偏移,确定偏移后的所述第一矩阵与所述第二矩阵的所述第二差异像素的数量;
逐个遍历多个所述偏移量,确定多个所述偏移量对应的所述第二差异像素的数量。
3.根据权利要求2所述的方法,其特征在于,根据所述偏移量对所述第一矩阵进行偏移,确定偏移后的所述第一矩阵与所述第二矩阵的第二差异像素数量包括:
对偏移后的所述第一矩阵和所述第二矩阵求第二差集;
对所述第二差集进行二值化,确定所述第二差集中的像素与周围范围内的像素的比较结果为有差异的第一像素值或无差异的第二像素值;
对二值化后的所述第二差集进行滤波处理;
统计所述第二差集中像素值为所述第一像素值的第二差异像素的数量。
4.根据权利要求1所述的方法,其特征在于,将所述第一差集与预设的忽略比较模板矩阵进行叠加,确定所述第一矩阵和所述第二矩阵的第一差异像素包括:
对所述第一差集进行二值化,确定所述第一差集中的像素与周围范围内的像素的比较结果为有差异的第一像素值或无差异的第二像素值;
将所述第一差集与所述忽略比较模板矩阵进行叠加,确定所述第一差集与所述忽略比较模板矩阵的合集,其中,所述忽略比较模板矩阵中忽略比较区域的像素值为第三像素值;
确定所述合集中像素值为所述第一像素值的像素为所述第一差异像素,其中,在所述第一差集与所述忽略比较模板矩阵的叠加过程中同一位置的像素的像素值相加。
5.根据权利要求4所述的方法,其特征在于,将所述第一差集与所述忽略比较模板矩阵进行叠加,确定所述第一差集与所述忽略比较模板矩阵的合集之前,还包括:
对二值化后的所述第一差集进行滤波处理;
对滤波处理后的所述第一差集进行先膨胀后腐蚀的处理方式,将所述第一差集中邻近的像素值为所述第一像素值的第一差异像素连接起来。
6.根据权利要求1所述的方法,其特征在于,根据所述第一差异像素确定所述第一图片和所述第二图片的对比结果包括:
根据所述第一差异像素在所述第一图片上的位置,将所述第一差异像素在所述第一图片上进行标示,生成对比结果图片。
7.一种图像对比装置,其特征在于,包括:
转化模块,用于确定需要进行对比的第一图片和第二图片分别转化的第一矩阵和第二矩阵的第一差集,其中,将第一图片转化为第一矩阵,将第二图片转化为第二矩阵,确定所述第一矩阵和所述第二矩阵的第一差集包括:对所述第一图片的所述第一矩阵,通过多个偏移量进行多次偏移确定多个所述偏移量分别对应的第二差异像素的数量;根据所述第二差异像素的数量最少的偏移量的情况下的第一矩阵,与所述第二矩阵确定所述第一差集;
叠加模块,用于将所述第一差集与预设的忽略比较模板矩阵进行叠加,确定所述第一矩阵和所述第二矩阵的第一差异像素;
对比模块,用于根据所述第一差异像素确定所述第一图片和所述第二图片的对比结果。
8.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至6中任意一项所述的图像对比方法。
9.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至6中任意一项所述的图像对比方法。
CN202010225450.6A 2020-03-26 2020-03-26 图像对比方法及装置 Active CN111428791B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010225450.6A CN111428791B (zh) 2020-03-26 2020-03-26 图像对比方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010225450.6A CN111428791B (zh) 2020-03-26 2020-03-26 图像对比方法及装置

Publications (2)

Publication Number Publication Date
CN111428791A CN111428791A (zh) 2020-07-17
CN111428791B true CN111428791B (zh) 2023-08-29

Family

ID=71548788

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010225450.6A Active CN111428791B (zh) 2020-03-26 2020-03-26 图像对比方法及装置

Country Status (1)

Country Link
CN (1) CN111428791B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2009111956A (ru) * 2009-03-31 2010-10-10 Федеральное государственное образовательное учреждение высшего профессионального образования "Кубанский государственный аграрный у Способ определения количества объектов на плоской поверхности
CN102509264A (zh) * 2011-11-01 2012-06-20 武汉大学 一种基于图像分割的扫描图像去灰尘方法
CN106991423A (zh) * 2016-01-21 2017-07-28 腾讯科技(深圳)有限公司 识别规格图片中是否包含水印的方法及装置
CN107194340A (zh) * 2017-05-15 2017-09-22 窦露 利用计算机视觉搜索登山遇险人员的方法及系统
CN107578029A (zh) * 2017-09-21 2018-01-12 北京邮电大学 计算机辅助图片认证的方法、装置、电子设备及存储介质
CN110443747A (zh) * 2019-07-30 2019-11-12 Oppo广东移动通信有限公司 图像处理方法、装置、终端及计算机可读存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2009111956A (ru) * 2009-03-31 2010-10-10 Федеральное государственное образовательное учреждение высшего профессионального образования "Кубанский государственный аграрный у Способ определения количества объектов на плоской поверхности
CN102509264A (zh) * 2011-11-01 2012-06-20 武汉大学 一种基于图像分割的扫描图像去灰尘方法
CN106991423A (zh) * 2016-01-21 2017-07-28 腾讯科技(深圳)有限公司 识别规格图片中是否包含水印的方法及装置
CN107194340A (zh) * 2017-05-15 2017-09-22 窦露 利用计算机视觉搜索登山遇险人员的方法及系统
CN107578029A (zh) * 2017-09-21 2018-01-12 北京邮电大学 计算机辅助图片认证的方法、装置、电子设备及存储介质
CN110443747A (zh) * 2019-07-30 2019-11-12 Oppo广东移动通信有限公司 图像处理方法、装置、终端及计算机可读存储介质

Also Published As

Publication number Publication date
CN111428791A (zh) 2020-07-17

Similar Documents

Publication Publication Date Title
JP6499188B2 (ja) 飽和画像を非飽和画像に変換する方法
US7149355B2 (en) Image processing apparatus, image processing method, image processing program, and computer-readable record medium storing image processing program
CN102763117B (zh) 数据生成装置、数据生成方法、数据生成程序及记录介质
JP4863346B2 (ja) カラー画像重畳バーコード生成方法および装置
KR20110042089A (ko) 이미지 정정을 위한 복원 기술들의 이용
US10306210B2 (en) Image processing apparatus and image capturing apparatus
CN111753869A (zh) 图像处理方法、图像处理装置、存储介质、图像处理系统及已学习模型制造方法
JP4908440B2 (ja) 画像処理装置及び方法
CN111353956B (zh) 图像修复方法、装置、计算机设备及存储介质
EP2551816B1 (en) Digital watermark embedding apparatus and method
CN101753798A (zh) 图像处理设备、方法和程序
CN111179159A (zh) 消除视频中目标影像的方法、装置、电子设备及存储介质
CN111192190A (zh) 消除图像水印的方法、装置及电子设备
CN111428791B (zh) 图像对比方法及装置
CN111787240A (zh) 视频生成方法、装置和计算机可读存储介质
CN111160340B (zh) 一种运动目标检测方法、装置、存储介质及终端设备
CN115661156B (zh) 图像生成方法、装置、存储介质、设备及计算机程序产品
US10430963B2 (en) Image processing apparatus, image reading apparatus, and non-transitory computer readable medium storing program
JP4868139B2 (ja) 画像処理装置及び画像処理プログラム
KR20170033551A (ko) 이미지 처리 장치, 이미지 처리 방법 및 컴퓨터 판독가능 기록 매체
CN111953994B (zh) 一种视频水印添加方法和装置
JP7102844B2 (ja) フレーム補間装置、フレーム補間方法およびフレーム補間プログラム
WO2011027422A1 (ja) 画像処理装置および映像再生装置
CN108712570B (zh) 增强智能移动设备检测隐藏图像的实况性与真实性的方法
US20090086092A1 (en) Image processing apparatus and image processing method thereof

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant