img.chk icon indicating copy to clipboard operation
img.chk copied to clipboard

Вопрос. Как сжать opencv ORB дескрипторы 32 байта в 8 байт с помощью phash?

Open Taraflex opened this issue 7 years ago • 0 comments

Не знал как с вами лучше связаться по вопросу к статье, поэтому решил написать сюда. В первую очередь, огромное вам спасибо за статьи https://habrahabr.ru/post/211773/ https://habrahabr.ru/post/211264/ https://habrahabr.ru/post/205398/ очень сильно помогли в моей текущей задаче.

Продублирую сюда вопрос https://toster.ru/q/501115

`===================================== Пытаюсь сделать поиск по мотивам статьи https://habrahabr.ru/post/211773/ есть там такой момент Так как наш хеш это 64битное число, то требуется 32 байта дескриптора ужать в 8 байт и при этом не сильно потерять в точности. После некоторых тестов было решено попробовать эти 32 байта представить в виде матрицы 16x16 бит. А потом эту матрицу пропустить через перцептивный хеш PHash. Результатом должно было оказаться как раз 64 битное число.

И вот как то у меня идей нет, как эту матрицу скормить в cv::dct из opencv или https://www.phash.org/ Интересует решение на c++ но сойдет и любом другом языке В репозитории у автора статьи (огромный ему респект кстати) не нашел примера с конвертированием дескриптора в хэш https://github.com/valbok/img.chk =====================================`

Не особо силен в математике, а готовые реализации phash что я находил в основном используют матрицы 3232 или 88 и предполагают получение цветов а не битовых данных 0/1, можете подсказать пожалуйста в каком направлении мне искать? Или же просто считать биты полноценными цветами и использовать в либах с phash напрямую? Это будет корректно?

Taraflex avatar Jan 30 '18 15:01 Taraflex