将图像哈希转换为python内置int
将图像哈希转换为python内置int,python,numpy,hash,Python,Numpy,Hash,我正在用opencv和python进行一个图像哈希项目。 我正在阅读本教程 假设我将图像转换为哈希,并将h作为图像哈希和64位int: h=5090336880217583642 当我将h转换为numpy 64位浮点,然后将其转换为Python内置的整数数据类型时,如下所示: h = 5090336880217583642 x = int(np.array(h, dtype="float64")) print(("x = {} ").format(x)) 我的x输出为: x =50903368
我正在用opencv和python进行一个图像哈希项目。
我正在阅读本教程
假设我将图像转换为哈希,并将h作为图像哈希和64位int: h=5090336880217583642 当我将h转换为numpy 64位浮点,然后将其转换为Python内置的整数数据类型时,如下所示:
h = 5090336880217583642
x = int(np.array(h, dtype="float64"))
print(("x = {} ").format(x))
我的x输出为:
x =5090336880217583616
为什么会这样?为什么x不等于h?问题来自于使用float64,您可以查看一下 您可以使用:
h = 5090336880217583642
x = int(np.array(h, dtype="int64"))
print(("x = {} ").format(x))
输出:
x = 5090336880217583642
谢谢你@rusru_ro1。。。我意识到numpy用一些二进制分数来近似h,因此遗漏了h的一些数字。对吗?