我们已经准备好了,你呢?

2026我们与您携手共赢,为您的企业形象保驾护航!

对比封面示意图

一、图片近似度对比

开门见山,不绕弯路。

用的是这个项目:

之所以选择这个项目,是因为该项目提交记录较为频繁,同时文件版本也相对更新。

案例先行

不管怎样,先看对比效果。

您可以狠狠地点击这里:JS实现图片对比差异参数demo

首先,挑选两张形态类似的图片,比如选用我的CSS书籍的封面,然后启动对比功能,接下来便会出现以下界面展示的内容:

相似图片

相似程度大约为半数,这两幅图像布局相近,大小略有出入,色调存在差异,文字表述也有区别,百分之五十的出入达到了预期标准。

接下来,挑选两张外观迥异的图像,比如选用我的俊美照片

完全不同风格图片相似度

观察可知差异极小,数值几乎为0,二者相去甚远,毫无参照价值。

最终,展示界面能够选取本地图像执行相像度检测,用户可以导入个人电脑中的照片,来观察最终成效。

例如,我挑选了下面呈现的两个图像,获得了彼此之间关联性很强的比较效果,数值上非常接近

相似度高示意

高达0.83,这是一个比较高的对比值了。

使用总结

依照我的体验,若对比度低于0.4,便表明存在显著不同,数值越低,显然分歧就愈发明显。

二、使用说明

官方示意的代码是npm包引入,如下:

npm install ssim.js

import ssim from "ssim.js";
加载名为img1的图片文件,路径为当前目录下的img1jpg
加载名为img2.jpg的图片文件,将其存储在变量img2中,作为图像资源使用
计算了两组图像的相似度,得到了数值和评估结果,数值用来衡量相似程度,评估结果用来判断性能表现。
输出SSIM指标为mssim,性能消耗为performance毫秒。

那些先前提及的方式,其实并不存在,我查看了ssim的JS代码,里面完全找不到这个词语。

而这里的img1和img2并非图像成分,而是实体,能够借助成分获取,采用括号运算。

代码示意:

// 图片转imageData需要的canvas
// 为了节省开销,就在外面定义,只用这一个玩耍了
新建一个画布元素,并将其赋值给canvas变量,通过document对象创建
获取画布的绘图环境,并设置相关参数,包括,绘制模式,
    willReadFrequently: true 
});
// image 转 imagedata的方法
定义一个名为image2data的函数,接收两个参数img和flag,通过箭头函数实现,内部结构省略
画布的宽度和高度分别是多少,请告知,谢谢
画布清除起始坐标为横纵零点,清除区域横宽为宽,纵高为高。
图片通过绘制函数被加载,起始坐标为横纵坐标零点,绘制区域宽度为指定值,高度同样为指定值。
获取当前画布的像素数据,起始坐标为横坐标零,纵坐标零,宽度为width,高度为height。
};

在使用方法之前,需要先给元素设置高宽属性。

如果是Web直连引用

直连引用的话,使用下面示意的代码:


前面提供的演示页面就是使用直连引用的方式实现的。

更具体的使用细节直接参阅demo演示页面的源码即可。

三、应用场景,结束语

图片相似度的应用通常都与图片序列相关。

如果GIF动图需要压缩处理,可以移除那些高度相似的连续画面,仅保留起始帧,并且把该帧的播放时长适当延长。

如今网络技术对于这种需求已经相当完善,特别是存在一个接口,能够便捷地解析GIF图像。

又例如对识别视频素材的转场画面等。

此外,素材的体积不决定辨认的精确度,却关系到辨认的效率。

就是1024乘以1024的图像对照情况,跟128乘以128的图像对照情况差别很小,不过运行效果的区别就非常显著了。

因此,有个小建议,拿取图像信息时,要画在恰当尺寸的载体上,不必依照原始图像的规格来创作,除非你的相似度检测只是临时性的任务,而非大规模的处理流程。

好的,就讲到这里,一项微不足道的技能沉淀,也许在某个时刻就能派上用场。

感谢阅读,欢迎分享,以及圣诞节快乐!

二维码
扫一扫在手机端查看

本文链接:https://www.by928.com/shan-xi/11755.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线