计算图片相似度的多种解决方案
来源:互联网 发布:apache bench post 编辑:程序博客网 时间:2024/05/16 00:35
利用直方图距离计算图片相似度
计算公式:
其中,G和S为两张图片的图像颜色分布直方图,N为颜色空间样点数。
这里使用分块的方法计算相似度,用以提高各部分的特征,防止图片颜色相似导致计算的相似度高。
利用平均哈希算法计算图片相似度
计算步骤:
- 缩放图片:一般大小为8*8,64个像素值
- 简化色彩,转化为灰度图:可以使用Image的convert(‘L’)方法
- 计算平均值:计算出灰度图所有像素点的像素值的平均值
- 比较像素灰度值:遍历灰度图的每一个像素值与上一步计算的平均值,大于平均值记录为1,否则为0
- 得到64位图像指纹
- 记录两张图片的图像指纹的汉明距离,计算图片相似度
利用感知哈希算法计算图片相似度
计算步骤:
- 缩放图片:一般大小为32*32,这样方便DCT计算
- 简化色彩,转化为灰度图:可以使用Image的convert(‘L’)方法
计算DCT(离散余弦变换):
获得图像的二维数据矩阵f(x,y)
求离散余弦变换的系数矩阵[A]
求系数矩阵对应的转置矩阵[A]T
根据公式[F(u,v)]=[A][f(x,y)][A]T 计算离散余弦变换
缩小DCT:DCT计算后的矩阵是32*32,保留左上角的8*8,这些代表的图片的最低频率
- 计算平均值:计算缩小DCT后的所有像素点的平均
- 进一步减小DCT:大于平均值记录为1,否则为0
- 得到64位信息指纹
- 记录两张图片的图像指纹的汉明距离,计算图片相似度
利用差异哈希算法计算图片相似度
计算步骤:
- 缩放图片:一般大小为9*8,以留下多一行的像素数据进行差异计算
- 简化色彩,转化为灰度图:可以使用Image的convert(‘L’)方法
- 计算差异值:dHash算法工作在相邻像素之间,这样每行9个像素之间产生了8个不同的差异,一共8行,则产生了64个差异哈希值
- 得到64位信息指纹:如果左边的像素比右边的更亮,则记录为1,否则为0
- 记录两张图片的图像指纹的汉明距离,计算图片相似度
GitHub地址
阅读全文
0 0
- 计算图片相似度的多种解决方案
- OpenCV 计算图片相似度
- 相似度的计算
- 【matlab】:matlab实现计算两张图片的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度。
- Linux学习笔记之服务管理
- 模板系列
- NMS——非极大值抑制
- Spring Boot(四):利用注解自定义日期格式化
- 8.2 TensorFlow实现KNN与TensorFlow中的损失函数,优化函数
- 计算图片相似度的多种解决方案
- ionic3中文文档:悬浮按钮FabButton
- Servlet(4)ServletContext接口 (获取web.xml中所有Servlet共有的信息)
- 在线小说阅读网站开源项目地址整合
- Html页面优化
- 创建一个将某个数分配为多少份的随机数的表值函数
- [JZOJ5358]【NOIP2017提高A组模拟9.12】BBQ
- Android BitmapFactory 解码总结
- 百练1745:Divisibility