Image Hash,图像相似度
来自本人笔记: https://github.com/masterAllen/LearnOpenCV/blob/main/docs/0.4.md
图片的 Hash 计算,通常用于比较图片相似度。具体原理其实也会很简单,就是图片缩小到某个尺寸,比较和某个数的大小,组成最终一个 01 串。如最简单的平均哈希:
- 统一将图片尺寸缩放为8*8,一共得到了64个像素点。
- 转灰度图,可以用平均法、也可以用 YUV 中的 Y 等。
- 遍历各个像素,大于64个像素平均值则为1,反之为 0
其他的一些方法,参考:https://www.cnblogs.com/Yumeka/p/11260808.html
具体使用如下:
import cv2
# 其他 Hash 自行查阅 OpenCV:https://docs.opencv.org/4.x/d4/d93/group__img__hash.html
src = cv2.imread('./image/person.jpg', -1)
func = cv2.img_hash.PHash.create()
result = func.compute(src)