工作生活中,常常拍了很多照片存在计算机中,这些照片有些在同一个角度拍摄,内容很相似,甚至有些采取连拍方式,基本相同。清理这些照片、图像给很多朋友带来困扰。这里,给大家推荐一个图像查同软件。简单介绍一下这个软件查同算法总体思路:
        1、按照用户指定的目录获取其中的所有*.jpg文件,对所有文件进行预处理,得到特定尺寸(界面可指定,默认为128×128)的缩略图。
        2、按照用户在界面指定分块数量(默认为8),将缩略图等分为8×8,共64个的子块,对每一块,分别计算像素RGB三通道平均值,并将这3个数值,按照特定算法映射为3个可显示字符。
        3、按照用户指定的块排列顺序(通过点击“样式”按钮,依次点击分块单元来指定排列顺序),将上述每个块(如8×8=64)所映射的字符连接成字符串,这样,对一幅图像,则可对RGB三通道每个通道形成一个字符串序列。界面提供图像信息中包括“红色基因”、“绿色基因”、“蓝色基因”,即分别指上述字符串序列。
        4、待进度条指示处理完毕后,可分别点击“红色基因”、“绿色基因”、“蓝色基因”的列头,则可将图像分别按照指定的颜色映射字符串进行排序,并按照用户指定分组深度(默认为6,即如果前6个字符相同,则认为是相同图像),用红色标记。
        使用上下箭头按钮可逐一浏览图像,排序完成后,使用左右箭头可在做了相同标记的图像中进行快速跳转。
        可对手工标记的图像进行删除。

上述算法,实际效果相当不错,相同的图像绝对逃不出算法的“法眼”,差别较小的图像也都乖乖的顺序排列在一起,指定的参数合适时,相似度很高的图像标记也很准确。

使用时,指定了目录后即开始进行预处理,预处理完成后只需指定某列排序,使用左右箭头寻找被红色标记的文件组即可。图像色彩构成不通,RGB三通道表现也略有差异,多用用就清楚了。

软件使用C#编写,源代码公开,下面提供exe和源代码下载,请各取所需。

可执行程序(1分):https://download.csdn.net/download/codeslave1130/10474258

源代码(3分):https://download.csdn.net/download/codeslave1130/10501089

介绍一种图像相似度排序算法相关推荐

  1. 图像相似度比较算法总结

    图像相似度比较算法总结 目录 简介 全局比较算法 hash 平均hash 插值hash 感知hash 比较hash指获取相似度 直方图 单通道直方图 多通道直方图 结构性相似度SSIM 局部信息相似度 ...

  2. 选择排序(Selection sort)是一种简单直观的排序算法

    选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大 ...

  3. 介绍一种新的群智能算法---黏菌算法

    一种新的群智能算法-黏菌算法 介绍一种新的群智能算法-黏菌算法 近些年群智能算法由于其效率较高,使用方便的优点引起了广大科研者的关注与兴趣.最近看文献,温州大学的李世民(现在去复旦读研究生了)提出了一 ...

  4. 对以下6种常用的内部排序算法进行比较:起泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、堆排序。

    题目要求: (1)对以下6种常用的内部排序算法进行比较:起泡排序.直接插入排序.简单选择排序.快速排序.希尔排序.堆排序. (2)待排序表的表长不小于100:其中的数据要用伪随机数产生程序产生:至少要 ...

  5. cacti不能实时刷新流量图_介绍一种编码帧内刷新算法

    0.引言 本文主要介绍一种帧内刷新算法,解决I帧太大带来的延迟问题,可以在调优时,值得借鉴. 帧内刷新技术避免 I 帧尖峰带来的带宽压力,可以有效地降低视频通信中的缓冲区延迟.帧内刷新算法是一种视频错 ...

  6. 深入学习OpenCV中图像相似度的算法

    最近一段时间学习并做的都是对图像进行处理,其实自己也是新手,各种尝试,所以我这个门外汉想总结一下自己学习的东西,图像处理的流程.但是动起笔来想总结,一下却不知道自己要写什么,那就把自己做过的相似图片搜 ...

  7. 几种句子相似度实现算法(简单了解一下)

    最近在做一个虚拟客服的项目,简单的了解了一下中文语境的集中句子相似度的算法 看了大佬的项目和博客,不明觉厉,链接送上:https://github.com/wenyangchou/SimilarCha ...

  8. 算法:两种步长的希尔排序算法

    算法:两种希尔排序算法 1 /** 2 * 希尔排序 3 * 不同步长的算法 4 * @author mackxu 5 * 6 */ 7 class ShellSort { 8 private int ...

  9. c++ 弧形面如何逆时针排序_这8种常见的Java排序算法,学算法必看!

    在互联网的大趋势下,数据结构和算法知识,都扮演着重要的角色. 在面试中和实际工作中也是经常遇到和使用到的. 为了让大家了解java中的算法及其代码实现,小编整理出了以下常用的 8 种: 01 直接插入 ...

最新文章

  1. CIKM最佳应用论文:11亿节点的大型图,看闲鱼如何用图卷积过滤垃圾评论
  2. python教学视频k_GitHub - y000k/codeparkshare: Python初学者(零基础学习Python、Python入门)书籍、视频、资料、社区推荐...
  3. java 编译开关_java – 字符串是关于开关的数字类型,并始终编译为lookupswitch?
  4. 相机矩阵(Camera Matrix)
  5. Golang系列:打印命令行参数
  6. Windows在当前目录(文件)打开cmd窗口
  7. 有关《8zsb》的一些介绍
  8. 什么是区块链?真能改变货币和商业?终于有人讲明白了
  9. 视频编辑利器,不喜欢就框除!开源视频物体移除软件video object removal
  10. rocketmq mysql_聊聊rocketmq-mysql的BinlogPositionManager
  11. PMP备考笔记--1.1
  12. JSF 2 dropdown box example
  13. 中国能源统计年鉴面板数据-分省市主要污染物排放指标(包含ECXEL2020年中国统计年鉴)
  14. epub.js制作电子书阅读网站
  15. 政策解读 | 传言PayPal要封杀独立站卖家?绝对不可能!
  16. java long类型值不能为0_关于原始类型:Java:为什么不能将int转换为Long
  17. 汉语中的词频及笔画数分布规律探析
  18. AVI的音视频编码格式
  19. Linux内核入门: UL(x)、ULL(x)
  20. 【第十八篇】Flowable之多人会签

热门文章

  1. 转载:那些著名或者非著名的面试题(上)
  2. 如果提取音乐的伴奏和人声,分享两个方法给大家!
  3. 2018-2019-2 20189206 《密码与安全新技术专题》 第二次作业
  4. 安卓手机刷机失败自救教程
  5. 人和人的相处真是比较困难
  6. 为什么有时候启动计算机会很卡,为什么我的电脑会卡?
  7. 操作系统入门—参考清华大学的课程
  8. 曾哥传 第六话 泰拳的挑衅
  9. Java 微服务的QPS上不去?试试这些办法
  10. 天天刷 B站,了解他们的评论系统是如何设计的吗?