使用OpenCV,Python进行图像哈希(差分哈希 dHash)处理

2023-11-05

使用OpenCV,Phthon进行图像哈希处理的一个重要应用是去除重复的图像;

当你有多个相册的图片,进行合并时,so boring,有一些图片是重复的,肉眼来看太难删除了。

图像哈希可以帮助你完美的解决这个问题,找到完全相同的图片,只保留一张,删除其他的。

图像哈希(也称为感知哈希)是基于图像的视觉内容构造哈希值的过程。我们将图像哈希用于CBIR,近重复检测和反向图像搜索引擎。

1. 图像哈希的原理

(1)检查图像内容
(2)构造一个哈希值,该哈希值根据图像的内容唯一地标识输入图像

图像哈希的最重要的一个应用是:反向图像搜索引擎。

2. 为什么md5,sha-1不起作用?

将一张图片有250250缩放到500500,图像没有变化,但计算出来的md5值变了。原因在于:密码哈希算法的本质:更改文件中的单个位将导致不同的哈希。

在图像哈希/感知哈希情况下,我们实际上希望相似的图像也具有相似的哈希值。 这也是根本原因。

解决办法: 使用差分哈希(Difference Hash 简称dHash);

3. 差异哈希

(1)转为灰度图&#

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用OpenCV,Python进行图像哈希(差分哈希 dHash)处理 的相关文章

  • Python Tkinter 错误,“创建图像太早”

    所以我有一个作业 我必须使用 Tkinter 来创建一个棋盘游戏 这只是程序的一部分 我想在其中引入电路板的图像 但我不断收到错误 创建图像太早 并且我不确定我做错了什么 到目前为止 这是我的代码 from Tkinter import f
  • 递归 lambda 表达式可能吗?

    我正在尝试编写一个调用自身的 lambda 表达式 但我似乎找不到任何语法 或者即使它是可能的 本质上我想将以下函数传输到以下 lambda 表达式中 我意识到这是一个愚蠢的应用程序 它只是添加 但我正在探索可以在 python 中使用 l
  • 如何在python 3.7中生成条形码

    我正在使用 python 3 7 为了生成条形码 我尝试使用安装 pyBarcode 库pip install pyBarcode 但它显示以下错误 找不到满足 pyBarcode 要求的版本 来自版本 找不到 pyBarcode 的匹配分
  • Sublime Text 插件开发中的全局 Python 包

    一 总结 我不知道 Sublime Text 插件开发人员如何使用 Sublime Text 查找全局 Python 包 而不是 Sublime Text 目录的 Python 包 Sublime Text使用自己的Python环境 而不是
  • python 中的并行处理

    在 python 2 7 中进行并行处理的简单代码是什么 我在网上找到的所有示例都很复杂 并且包含不必要的代码 我该如何做一个简单的强力整数分解程序 在每个核心 4 上分解 1 个整数 我真正的程序可能只需要2个核心 并且需要共享信息 我知
  • 使用 python 中的公式函数使从 Excel 中提取的值的百分比相等

    import xlrd numpy excel Users Bob Desktop wb1 xlrd open workbook excel assignment3 xlsx sh1 wb1 sheet by index 0 colA co
  • 为什么删除临时文件时出现WindowsError?

    我创建了一个临时文件 向创建的文件添加了一些数据 已保存 然后尝试将其删除 但我越来越WindowsError 编辑后我已关闭该文件 如何检查哪个其他进程正在访问该文件 C Documents and Settings Administra
  • Kivy - 有所有颜色名称的列表吗?

    在 Kivy 中 小部件 color属性允许输入其值作为字符串颜色名称 也 例如在 kv file Label color red 是否有所有可能的颜色名称的列表 就在这里 来自Kivy 的文档 https kivy org doc sta
  • 如何在Python中同时运行两只乌龟?

    我试图让两只乌龟一起移动 而不是一只接着另一只移动 例如 a turtle Turtle b turtle Turtle a forward 100 b forward 100 但这只能让他们一前一后地移动 有没有办法让它们同时移动 有没有
  • Python 中的流式传输管道

    我正在尝试使用 Python 将 vmstat 的输出转换为 CSV 文件 因此我使用类似的方法转换为 CSV 并将日期和时间添加为列 vmstat 5 python myscript py gt gt vmstat log 我遇到的问题是
  • 工作日重新订购 Pandas 系列

    使用 Pandas 我提取了一个 CSV 文件 然后创建了一系列数据来找出一周中哪几天崩溃最多 crashes by day bc DAY OF WEEK value counts 然后我将其绘制出来 但当然它按照与该系列相同的排名顺序绘制
  • sklearn 中的 pca.inverse_transform

    将我的数据拟合后 X 我的数据 pca PCA n components 1 pca fit X X pca pca fit transform X 现在 X pca 具有一维 当我根据定义执行逆变换时 它不是应该返回原始数据 即 X 二维
  • 一段时间后终止线程的最 Pythonic 方法

    我想在线程中运行一个进程 它正在迭代一个大型数据库表 当线程运行时 我只想让程序等待 如果该线程花费的时间超过 30 秒 我想终止该线程并执行其他操作 通过终止线程 我的意思是我希望它停止活动并优雅地释放资源 我认为最好的方法是通过Thre
  • 如果在等待“read -s”时中断,在子进程中运行 bash 会破坏 tty 的标准输出吗?

    正如 Bakuriu 在评论中指出的那样 这基本上与BASH 输入期间按 Ctrl C 会中断当前终端 https stackoverflow com questions 31808863 bash ctrlc during input b
  • Gspread如何复制sheet

    在 Stackoverflow 上进行谷歌搜索和搜索后 我想我找不到有关如何复制现有工作表 现有模板工作表 并将其保存到另一个工作表中的指南 根据文档 有重复表 https gspread readthedocs io en latest
  • 在 Windows 上使用 apache mod_wsgi 运行 Flask 应用程序时导入冲突

    我允许您询问我在 Windows 上使用您的 mod wsgi portage 托管 Flask 应用程序时遇到的问题 我有两个烧瓶应用程序 由于导入冲突 只有一个可以同时存在 IE 如果请求申请 1 我有回复 然后 如果我请求应用程序 2
  • 使用 python 绘制正值小提琴图

    我发现小提琴图信息丰富且有用 我使用 python 库 seaborn 然而 当应用于正值时 它们几乎总是在低端显示负值 我发现这确实具有误导性 尤其是在处理现实数据集时 在seaborn的官方文档中https seaborn pydata
  • 如何在 pandas 中使用 read_fwf 跳过空行?

    I use pandas read fwf http pandas pydata org pandas docs stable generated pandas read fwf htmlPython pandas 0 19 2 中的函数读
  • Python:IndexError:修改代码后列表索引超出范围

    我的代码应该提供以下格式的输出 我尝试修改代码 但我破坏了它 import pandas as pd from bs4 import BeautifulSoup as bs from selenium import webdriver im
  • 如何与其他用户一起使用 pyenv?

    如何与其他用户一起使用 pyenv 例如 如果我在用户 test 的环境中安装了 pyenv 则当我以 test 身份登录时可以使用 pyenv 但是 当我以其他用户 例如 root 身份登录时如何使用 pyenv 即使你这么做了 我也会s

随机推荐

  • 用inno setup制作管理员权限启动的安装包

    inno setup制作的安装包 默认是不需要管理员权限启动的 我们制作安装包 往往需要做一些设置工作 这些设置工作可能用到管理员权限 使用Resource Hacker修改inno setup资源 使inno settup生成的安装包以管
  • git clone 指定的单个目录或文件夹

    git clone 指定的单个目录或文件夹 针对自己的项目 方法一 基于sparse clone变通方法 创建一个空仓库 拉取远程仓库信息 开启 sparse clone 设置过滤 更新仓库 创建空仓库 mkdir devops cd de
  • VLC LIVE555音视频同步学习

    音频知识 采样频率是指将模拟声音波形进行数字化时 每秒钟抽取声波幅度样本的次数 正常人听觉的频率范围大约在20Hz 20kHz之间 根据奈奎斯特采样理论 为了保证声音不失真 采样频率应该在40kHz左右 常用的音频采样频率有8kHz 11
  • Flask View(视图学习)

    Flask Flask 简介 什么是flask 用于进行 web开发的python框架 业务逻辑处理 协议处理不需要操心 Flask 使用架构MVT M model 用于和关系型数据库交互 V View 接受请求 处理请求 返回相应 T T
  • js 将字符串转化为number的简单方式

    str 前边加上 正负号即可 console log 11 typeof 123 number console log 11 typeof 123 number 2 就是使用运算符减 乘 除的其中一种 在不改变原值的情况下 和number类
  • 魔兽世界开服一条龙服务端架设服务器搭建

    魔兽世界开服一条龙服务端架设服务器搭建 作为魔兽世界资深玩家 你是否有想过自己开服当服主 相信能看到此篇文章的你心里是有想法的 首先你需要知道开魔兽需要准备哪些东西 我是艾西今天带您了解下魔兽世界开服需要的东西 想要搭建一个魔兽商业服 需要
  • 数字之和

    链接 https www nowcoder com questionTerminal ae759916631f4711a90c4d4d9657f4b0 toCommentId 382873 来源 牛客网 对于给定的正整数 n 计算其十进制形
  • PyQt5 组件之QSlider

    QSlider简介 QSlider控件提供一个垂直或者水平的滑动条 滑动条是一个用于控制有界值典型的控件 它允许用户沿水平或者垂直方向在某一范围内移动滑块 并将滑块所在的位置转换为一个合法范围内的整数值 有时候这中方式比输入数字或者使用Sp
  • 双系统如何在Centos7中添加GRUB2启动项

    GRUB2是Centos7的默认引导加载程序 它可以轻松地加载所有的Linux发行版和其他操作系统 它提供一个菜单显示所有的操作系统 GRUB2具有高级特性以及一些基本特性 使其在所有Linux上都有效 文内含长段代码可复制可往左滑 希望对
  • Docker保存镜像到本地并载入本地镜像文件

    目录 一 适用情况 二 镜像保存到本机 1 查看已有的镜像文件 2 将镜像保存为本地文件 保存指令一 保存指令二 测试根据镜像ID保存镜像 三 载入本地镜像 载入指令一 载入指令二 载入通过镜像ID保存的本地镜像 四 批量保存和载入镜像脚本
  • 全网最详细中英文ChatGPT-GPT-4示例文档-步骤指示智能生成从0到1快速入门——官网推荐的48种最佳应用场景(附python/node.js/curl命令源代码,小白也能学)

    从0到1快速入门步骤指示智能生成应用场景 Introduce 简介 setting 设置 Prompt 提示 Sample response 回复样本 API request 接口请求 python接口请求示例 node js接口请求示例
  • 内网Https 自签Https证书 配合Tomcat 实现内网Https详细图文

    转载地址 https www cnblogs com ChromeT p 11122480 html 目录 开始制作CA根证书 创建私钥 创建证书请求 生成CA自签证书 制作服务器证书 向 本地keystore 密钥库中导入证书 导入服务器
  • 结构方程模型_结构方程模型(SEM)到底有多厉害?

    什么是结构方程模型 结构方程模型是高级定量方法中最常见的统计方法之一 在社会科学以及经济 市场 管理等研究领域 有时需处理多个原因 多个结果的关系 或者会碰到不可直接观测的变量 即潜变量 这些都是传统的统计方法不能很好解决的问题 结构方程模
  • qt传指针

    1 传指针 需要获取并且初始化 2 接口函数应该指明其父窗口
  • 【MedusaSTears】记一次踏坑:EL表达式不支持正则_EL表达式使用函数一览表_手机/座机号码脱敏正则规则

    吃水不忘挖井人系列 EL表达式中使用函数 以下这俩正则应该都可 应对诸如 010 12345678 这种座机 以及 13312345678 这种手机号
  • 基于类属属性的多标记学习——含python代码

    本文的基本内容翻译自Lift Multi Label Learning with Label Specific Features 1 含部分本人的理解 最后附带了我复现的python代码的github链接 类属属性 所谓多标记学习是相对于单
  • 修改Nuget包默认存放路径

    默认情况下所有的Nuget包都会下载到C盘 目前我这边有几十个G的大小 这导致我C盘的c 教程容量越来越小 我们可以在Nuget config中修改package存放路径 Nuget config 在C Users UserName App
  • 解决 R 语言中遇到的奇异拟合错误(singular fit encountered)

    解决 R 语言中遇到的奇异拟合错误 singular fit encountered 在 R 语言中 当执行线性回归或拟合模型时 有时会遇到奇异拟合错误 singular fit encountered 的问题 这个错误表示拟合过程中出现了
  • 关于知识的理解与忘却

    关于知识的理解与忘却 在做项目的过程中 我会遇到一些难题 会通过baidu与google来解决 解决之后 我很少对这些知识进行总结 但是 将来又遇到这方面的知识时 我发现却很难再找到记忆中的那些文章 当初对于自己理解这些知识有很大影响的文章
  • 使用OpenCV,Python进行图像哈希(差分哈希 dHash)处理

    使用OpenCV Phthon进行图像哈希处理的一个重要应用是去除重复的图像 当你有多个相册的图片 进行合并时 so boring 有一些图片是重复的 肉眼来看太难删除了 图像哈希可以帮助你完美的解决这个问题 找到完全相同的图片 只保留一张