图片去重修改编码

图片去重修改编码,第1张

去重和修改编码两个问题可以分别考虑。

去重:

1 首先需要找到一种去重的算法进行实现。常用的去重算法有哈希算法、感知哈希算法、局部敏感哈希算法等。

2 对于每张,计算出其唯一的哈希值,并将哈希值存储到数据库中。

3 当需要检查是否有重复时,对于要检查的,先对其进行哈希计算,然后在数据库中查询是否已经存在相同的哈希值即可,若存在,则说明存在重复。

修改编码:

1 首先需要找到一种修改编码的工具或算法进行实现。常用的修改编码工具有Adobe Photoshop、GIMP等。对于算法,可以采用离散余弦变换(DCT),先对每个色块进行DCT变换,然后对DCT系数的高频成分进行舍弃或加强,最后再将修改后的DCT系数进行反变换得到最终的编码。

2 发布修改后的,并在需要的地方替换原来的,确保修改后的能够成功加载。

需要注意的是,在进行去重或修改编码时,应该尽量保持的质量和清晰度,避免因为 *** 作过多而导致模糊或失真。同时,在处理的过程中需要保护的版权,避免侵犯他人的知识产权。

pillow包可以处理图像

pillow:(了解)(python image library)是一个有关图像处理的包,这个包底层用的C C++,但PIL包是python2下使用。所以又更新了一个适合python3版本的、基于PIL包的新包pillow。

安装pillow:

pip install pillow

至于识别,那就可能是文字识别或人脸识别。这需要学习很多东西,建议小白还是先把基础学好吧。

1通过哈希值不能反向推导出原始数据(所以哈希算法也叫单向哈希算法)

2对于输入数据非常敏感,及时更改了一个比特位,哈希值也大不相同

3散列冲突的概率要小,

4执行效率要高,及时很长的文本,也能尽快计算出哈希值

MD5的结果是128位 --> 32个16进制串

最常用于加密的哈希算法是 MD5(MD5 Message-Digest Algorithm,MD5 消息摘要算法)和 SHA(Secure Hash Algorithm,安全散列算法)

通过拿到加密后的密文然后再字典表(彩虹表)中比对,找到相同的密文则可以知道其明文。

可以通过在用户的密码后加盐(加入一个字符串)然后加密存储起来。

区块链是一块块区块组成的,每个区块分为两部分:区块头和区块体。

区块头保存着 自己区块体 和 上一个区块头 的哈希值。

因为这种链式关系和哈希值的唯一性,只要区块链上任意一个区块被修改过,后面所有区块保存的哈希值就不对了。

区块链使用的是 SHA256 哈希算法,计算哈希值非常耗时,如果要篡改一个区块,就必须重新计算该区块后面所有的区块的哈希值,短时间内几乎不可能做到。

假设我们有 k 个机器,数据的哈希值的范围是 [0, MAX]。我们将整个范围划分成 m 个小区间(m 远大于 k),每个机器负责 m/k 个小区间。当有新机器加入的时候,我们就将某几个小区间的数据,从原来的机器中搬移到新的机器中。这样,既不用全部重新哈希、搬移数据,也保持了各个机器上数据数量的均衡。

HA1(Secure Hash Algorithm)是由NIST NSA设计为同DSA一起使用的,它对长度小于264的输入,产生长度为160bit的散列值,因此抗穷举(brute- force)性更好。SHA-1设计时基于和MD4(Message Digest Algorithm –4)相同原理,并且模仿了该算法。SHA-1是由美国标准技术局(NIST)颁布的国家标准,是一种应用最为广泛的hash函数算法,也是目前最先进的加密技术,被政府部门和私营业主用来处理敏感的信息。而SHA-1基于MD5,MD5又基于MD4。

更进一步介绍:

SHA1——规范名称是SHA-1。SHA全称是Secure Hash Algorithm(安全散列算法),由美国“国家安全局(NSA)”和“国家标准与技术研究院(NIST)”联合研发,用来保护敏感的未保密资料。在联邦政府使用的同时,鼓励商业、企业和其它组织使用,从而实现“数位”版权管理(SHA1具有全球唯一特性)。

MD5——全称是Message-Digest Algorithm 5(信息 – 摘要算法)。MD5使用的是哈希函数:不可逆加密算法。大家熟悉的典型应用,就是将“光盘镜像或大型软件”当作一个大文本信息,通过不可逆的字符串变换算法产生“字符”信息摘要,以此检查、验证信息传输的完整一致(MD5具有全球唯一特性)。

CRC——全称是Cyclical Redundancy Check(循环冗余校验)。在各类下载的实际应用时:发送装置首先要计算出CRC值并随数据一同发送给接收装置;接收装置对下载数据进行计算并与收到的CRC相比较,从而确保数据传输的完整准确。CRC-32是CRC的“分支”:一般用于Point-to-Point的同步传输。

这里介绍一个比较好的hash验证工具,“hash”。它可以同时验证MD5、CRC_32、SHA1码:

绿色软件,运行后直接拖动需要校验的文件到程序上面即可

又称Levenshtein距离,是编辑距离(edit distance)的一种。指两个字串之间,由一个转成另一个所需的最少编辑 *** 作次数。许可的编辑 *** 作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。

一种局部敏感hash,它也是Google公司进行海量网页去重使用的主要算法。

传统的Hash算法只负责将原始内容尽量均匀随机地映射为一个签名值,原理上仅相当于伪随机数产生算法。传统的hash算法产生的两个签名,如果原始内容在一定概率下是相等的;如果不相等,除了说明原始内容不相等外,不再提供任何信息,因为即使原始内容只相差一个字节,所产生的签名也很可能差别很大。所以传统的Hash是无法在签名的维度上来衡量原内容的相似度,而SimHash本身属于一种局部敏感哈希算法,它产生的hash签名在一定程度上可以表征原内容的相似度。

我们主要解决的是文本相似度计算,要比较的是两个文章是否相似,当然我们降维生成了hash签名也是用于这个目的。看到这里估计大家就明白了,我们使用的simhash就算把文章中的字符串变成 01 串也还是可以用于计算相似度的,而传统的hash却不行。

流程

在信息论中,两个等长字符串之间的汉明距离(英语:Hamming distance)是两个字符串对应位置的不同字符的个数。换句话说,它就是将一个字符串变换成另外一个字符串所需要替换的字符个数。

汉明重量是字符串相对于同样长度的零字符串的汉明距离,也就是说,它是字符串中非零的元素个数:对于二进制字符串来说,就是1的个数,所以11101的汉明重量是4。

例如:

1011101与1001001之间的汉明距离是2

xlturing/simhashJava

以上就是关于图片去重修改编码全部的内容,包括:图片去重修改编码、Python如何图像识别、哈希算法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10632668.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存