Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将图像哈希转换为python内置int_Python_Numpy_Hash - Fatal编程技术网

将图像哈希转换为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的一些数字。对吗?