python实现一种相似图片搜索算法
下文中介绍了一种相似图片搜索的算法,算法的思路如下:
1.把所有操作图片转换为8×8的灰度图片;
2.计算每张图片的指纹。把8x8总共64个像素点和其平均灰度值比较,大于平均值返回1,否则返回0,这样每张图都可以用64bit二进制数表示。
3.比较指定图片和搜索图片的指纹。通过汉明距来表征其差异。汉明距越大,表示这两幅图片差异越大。
代码如下,使用的python版本3.8.6
import glob
import osfrom functools import reducefrom PIL import ImageEXTS = 'jpg', 'jpeg', 'JPEG', 'gif', 'GIF', 'png', 'PNG'def avhash(im):if not isinstance(im, Image.Image):im = Image.open(im)im = im.resize((8, 8), Image.ANTIALIAS).convert('L')avg = reduce(lambda x, y: x + y, im.getdata()) / 64.tmp_a = map(lambda i: 0 if i < avg else 1, list(im.getdata()))tmp_b = list(tmp_a)i = 0c = 0for dt in tmp_b:c = c + (dt << i)i = i +1return cdef hamming(h1, h2):h, d = 0, h1 ^ h2while d:h += 1d &= d - 1return hif __name__ == '__main__':h = avhash("cat.jpg")wd = "cat"os.chdir(wd)images = []for ext in EXTS:images.extend(glob.glob('*.%s' % ext))seq = []for f in images:seq.append((f, hamming(avhash(f), h)))for f, ham in sorted(seq, key=lambda i: i[1]):print ("%d\t%s" % (ham, f))
python实现一种相似图片搜索算法相关推荐
- 【Python】三种读取图片和显示图片的方法 pillow opencv torchvision
以下代码可以直接运行(同目录下需先放一张 dog.jpg 的图片) from PIL import Image import numpy as np import cv2 as cv from tor ...
- 10 行 Python 代码,批量压缩图片 500 张,简直太强大了
这几天,我在用 Github page + hexo 搭建个人网站,为了延续风格,就想把配图与文章一起迁移过去.这时候就出现了一个难题:我所用的图片都是高清大图,放到网站上会严重拖慢加载速度.因此,需 ...
- vb.net读取excel并写入dgv_如何用Python读取Excel中的图片?然后写入图片?
大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进行分析. 那么你知道如何使用Python读 ...
- python docx 合并文档 图片_Python+pymupdf处理PDF文档案例6则
推荐图书:<Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),清华大学出版社,2020年6月第1次印刷,7月第2次印刷 京东购买链接:https://it ...
- 如何用Python读取Excel中图片?又如何用Python往Excel中写入图片?
大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进行分析. 那么你知道如何使用Python读 ...
- python 识别图形验证码_Python图片验证码降噪处理实例!此乃识别验证码神技!...
图片验证码算是网络数据采集上的一道拦路虎,虽然有诸多公开的ORC接口.云打码平台,一旦大规模应用起来,还是内部写程序进行识别处理比较好. 而自己写代码进行识别的话,又有很多种方案,比如最近火热的神经网 ...
- python如何把矩阵转换为图片_如何将numpy数组转换为(并显示)图片
函数式编程 用python显示一张图片方法如下:import matplotlib.pyplot as plt # plt 用于显示图片import matplotlib.image as mpimg ...
- Python将PDF转成图片—PyMuPDF和pdf2image
前言:在最近的测试中遇到一个与PDF相关的测试需求,其中有一个过程是将PDF转换成图片,然后对图片进行测试. 粗略的试了好几种方式,其中语言尝试了Python和Java,总体而言所找到的Python方 ...
- pdf转换成jpg python_【PyMuPDF和pdf2image】Python将PDF转成图片PNG和JPG
公众号:前言:在最近的测试中遇到一个与PDF相关的测试需求,其中有一个过程是将PDF转换成图片,然后对图片进行测试. 粗略的试了好几种方式,其中语言尝试了Python和Java,总体而言所找到的Pyt ...
- python 生成pdf 文字和图片_Python系列—PDF文本与图片抽取
PDF是人们日常使用最多的跨平台文档.其是一种用独立于应用程序.硬件.操作系统的方式呈现文档的文件格式.每个PDF文件包含固定布局的平面文档的完整描述,包括文本.字形.图形及其他需要显示的信息.具有良 ...
最新文章
- idea无法引用jar包中的class
- 使鼠标保持按住状态_MouseInc 鼠标手势工具
- Eclipse安装Jetty插件(Web容器)
- 火狐 新增标签 一直加载_在Firefox的新标签页中加载最后标签页的URL
- macOS Big Sur 11.1更新了!苹果macOS Big Sur 11.1正式版发布
- php ds扩展,PHP教程:老生常谈PHP中的数据结构:DS扩展
- 4服务器内存和普通内存_Java服务器内存过高CPU过高问题排查
- java.lang.UnsupportedOperationException WebView is not allowed in privileged processes
- element-ui上传图片的使用upload
- hybird简介以及安卓应用hybird初体验
- 最新最全的vue面试题+详细解答
- python求不规则图形面积_使用Python生成不规则形状的图形
- 【智慧农业】智慧温室建造流程
- [书籍翻译]12周撰写期刊文章 学术出版成功指南——第 8 周:你的文章的开头和结尾
- python实现直播功能_Python实现直播推流效果
- 传说之下打开debug模式超超超超超超超超详细方法
- document的用法
- 【C语言】机试100题及代码答案(上)
- word图片另存为变黑色_别处复制过来的 图像在word中粘贴后变黑怎么处理?
- 平均11岁的黑客你怕不怕?“孩子从小就该感受编程的乐趣!!”
热门文章
- Mac 快速打开终端快捷键
- 微型计算机上的tab作用,TAB键有什么用处
- 目标客户画像_用户画像是什么?怎么做用户画像?
- ps怎么放大图片保持清晰度?
- 深度学习论文: Compounding the Performance Improvements of Assembled Techniques in a CNN及其PyTorch实现
- linux 如何重建mbr,双系统如何删除Linux,恢复Windows从MBR引导启动?
- mcu AD采样值和物理值
- Java中字符串数组转 long[]基本类型数组的方法
- 杜邦线改成焊线_做杜邦线(假)教程
- 怎么在Excel里输入可以打钩的选择框?