конвертировать хеш изображения в python, встроенный в int - PullRequest
1 голос
/ 20 сентября 2019


Я работаю над проектом хеширования изображений в opencv и python.
Я читаю этот урок https://www.pyimagesearch.com/2019/08/26/building-an-image-hashing-search-engine-with-vp-trees-and-opencv/
предположим, что я преобразовал свое изображение в хеш и у меня h какхэш изображения и 64-битное целое число:

h = 5090336880217583642

, когда я преобразую h в 64-разрядное число с плавающей запятой и затем преобразую его вВстроенный целочисленный тип данных в Python:

h = 5090336880217583642
x = int(np.array(h, dtype="float64"))
print(("x = {} ").format(x))

У меня есть x в виде:

x =5090336880217583616

Почему это происходит?почему x не равно h ?

1 Ответ

0 голосов
/ 20 сентября 2019

проблема возникает из-за использования float64, вы можете просмотреть Арифметика с плавающей точкой: проблемы и ограничения

вы можете использовать:

h = 5090336880217583642
x = int(np.array(h, dtype="int64"))
print(("x = {} ").format(x))

output:

x = 5090336880217583642
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...