• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > 求比较两幅图片是相似度的代码范例

求比较两幅图片是相似度的代码范例

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了html代码范例,组织机构代码范例,代码范例,java代码范例,统一社会信用代码范例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:求比较两幅图片是相似度的代码范例
描述:

如题,如果有iOS客和Android客户端的示例代码,那是最好了。
如果只有服务端的也可以,参考着做。


解决方案1:

相似度这个东西很模糊啊。。。如果只是想实现一个简单的版本,我在stackoverflow找到一个很有意思的算法:

  1. 把两张图片缩小到某个较小的、相同的尺寸,例如64*64或32*32。缩小的时候每个像素的值是周围n个像素的值的函数,简单的话就用平均。
  2. 扩展颜色范围,让图片中颜色最深的为全黑,最浅的为全白
  3. 旋转/翻转图片,让图片四个角的像素从左上角开始顺时针递减排列。

然后再求两个图片每个点相似度的均值(相似度可以用差值、差值平方、或者根据位置再乘上权重什么的,弄些数据跑一下选择效果最好的)。

有意思的是,这个算法甚至还可以支持预先计算好一批图片,然后从数据库中查询相似的:

To look up a possible match in a database, store the pixel colors as individual columns in the database, index a bunch of them (but not all, unless you use a very small image), and do a query that uses a range for each pixel value, ie. every image where the pixel in the small image is between -5 and +5 of the image you want to look up.

解决方案2:

感知哈希算法 - Perceptual hash algorithm

简单步骤:

  1. 第一步,缩小尺寸。
  2. 第二步,简化色彩。
  3. 第三步,计算平均值。
  4. 第四步,比较像素的灰度。
  5. 第五步,计算哈希值。

参考链接:相似图片搜索的原理 - 阮一峰 | 颜色分布法 和 内容特征法



分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 求比较两幅图片是相似度的代码范例

相关文章

  • 2017-06-07 遇到一个很奇怪的劫持,毫无规律
  • 2017-06-07 rails始终无法加载spreadsheet
  • 2017-06-07 RESTfulRESTful的命名有什么讲究?
  • 2017-06-07 请前辈具体指教一下在WEB中应用EJB的过程
  • 2017-06-07 七牛云存储-iOS真机上传图片是成功的,但图片接收不完整,图片显示不出来,没有错误信息,模拟器是正确的
  • 2017-06-07 python爬虫python模拟登录遇到一点问题?
  • 2017-06-07 更新homestead后无法通过域名访问本地项目
  • 2017-06-07 数据分析时,如何暂存比较大的数据?
  • 2017-06-07 Mac下新建文件的权限如何继承
  • 2017-06-07 python代码打包的问题

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • (python)使用Scrapy中的Request的时候,怎么把拿到的内容编码转换为utf-8?
    • laravel53passport遇到一些坑
    • redis全文搜索怎么实现中文
    • (laravel)关于PHP框架中的ORM组件的性能问题
    • (python)中str转成bytes类型后用csvwriterow写入csv文件仍然出错
    • shell中如何将json转为string
    • 为什么我的Scrapy爬不出数据?
    • (python)Django的Admin用户管理是单用户结构的,有多租户的Django数据层解决方案吗
    • 算法问题??赶紧来啊,脑经急转弯
    • 如何给手机端提供API接口?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有