问题标签 [phash]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
788 浏览

c++ - cimg 无法识别 tiff 图像

我正在使用 pHash 分析使用 cimg 的图像,即使我有 libpng12.dll、libpng.lib、libtiff3.dll 和 libtiff.lib 支持这些文件,我也无法加载和分析 tiff 图像或 png。当我将其中一个 pHash 函数传递给 tiff 图像时,它不会将其识别为 tif 并继续尝试使用 magick++ 加载它,我不想使用 magick++。

你能帮我弄清楚我哪里出错了吗?

调试完所有内容后..我意识到图像没有通过“if(tiff)”,所以没有做任何事情。

这是检查文件是否为 tiff 的代码:

0 投票
1 回答
1881 浏览

c++ - Visual Studio 2012 - 尝试包含 .lib 时出现“错误 LNK2019 无法解析的外部符号”

我正在尝试.lib在我的 Visual Studio 2012 C++ 项目中包含一个文件。该库是具体的 pHash 项目。我已将项目的头文件Project->Properties->Configuration Properties->VC++ Directories->Includes添加.libProject->Properties->Configuration Properties->VC++ Directories->Library Directories. pHash.lib已添加到 中的依赖项列表中Project->Properties->Configuration Properties->Linker->Input->Additional Dependencies。但是,即使我已经完成了所有这些,在尝试使用库时仍然会出现此错误:error LNK2019: unresolved external symbol "int __cdecl ph_dct_imagehash(char const *,unsigned __int64 &)" (?ph_dct_imagehash@@YAHPBDAA_K@Z) referenced in function _main.

我的代码如下所示:

0 投票
1 回答
421 浏览

image - 在另一个图像中搜索图像

我想为给定的图像文件找到类似的图像。

在此处输入图像描述

例如:

图像 1、2、4、5 相似。

图像 4、5、6、7 相似。3可能与那些相似。

我已经测试过http://www.phash.org/demo/。它使用了三种算法:径向、DCT、Marr/Mexican。

DCT 建议 1-2 相似。但它没有发现 1-4 相似。

您能否建议不同的库、算法,尤其是找到 1-4 相似的算法?正如我之前所说,我的目标是找到 (1,2,4,5) 相似和 (4,5,6,7) 相似。

0 投票
1 回答
518 浏览

image - 云中的图像匹配

如何检查两个图像是否相似?一张图片由手机拍摄,另一张存储在云端,而不是将整个图像发送到云端?我发现从源图像中提取特征点并在云端使用直方图匹配可以解决我的问题。有没有更好的方法,比如使用 pHash 之类的散列函数。

0 投票
4 回答
1157 浏览

c# - Why am I getting an error "Attempted to read or write protected memory." after resizing image in C#?

I am using PHASH for computing the hash values for a large database of images. These images are of high resolution and hence I need to resize them for fast computing of the hash.

However, when I resize the image, the PHASH program throws an error. If I don't resize, the PHASH program works fine.

My resize code is as below.

The error which I receive is "Attempted to read or write protected memory".

The phash code is as below:

The above function calls the C++ program and returns me the hash value for that image. It works fine when the image is not resized programmatically. If I resize the image using MS Paint then also it works fine.

0 投票
1 回答
1786 浏览

image-processing - pHash 对某些图像产生奇怪的结果

我无法理解一些pHash结果。

根据 pHash,两张真正相似的图像只有 75% 的共同点:

第一张图片&第二张图片

另外两张本应该没有共同点的图像具有 78% 的相似性:

第一张图片&第二张图片

有什么我可能做错的吗?我正在使用 ruby​​ 库(Similie、pHash、Phashion),但它们只是映射 pHash 函数。在其他一些示例中,结果令人满意。

0 投票
1 回答
925 浏览

c# - 使用 SOLR 计算两个 ulong 之间的“相似度”/“bitcount”

我们有一个图像数据库,我使用David Oftedal实施的Neal Krawetz 博士的方法计算了 PHASH 。

部分示例代码计算了这些 long 之间的差异:

挑战在于我只知道其中一个哈希值,并且我想查询 SOLR 以按相似度顺序查找其他哈希值。

几点注意事项:

  1. 在这里使用 SOLR(我唯一的选择是 HBASE)
  2. 想要避免将任何自定义 java 安装到 solr 中(很高兴安装现有插件)
  3. 很高兴在 C# 中进行大量预处理
  4. 乐于使用多个字段将数据存储为位字符串、长等
  5. 使用 SOLRNet 作为客户端

编辑,一些额外的信息(抱歉我陷入了这个问题并开始假设它是一个广为人知的领域)。这里是 C# 控制台/示例应用程序的直接下载:http: //01101001.net/Imghash.zip

此控制台应用程序的示例输出为:

004143737f7f7f7f phash-test-001.jpg
0041417f7f7f7f7f phash-test-002.jpg
相似度:95.3125%

0 投票
2 回答
2651 浏览

c++ - 在 Ubuntu + PHP 扩展上编译 pHash

我正在尝试编译 pHash 扩展。我在这里找到了一个很好的分步解释,https://serverfault.com/questions/491730/compile-phash-on-centos-php-extension

但我遇到了两个问题:

1) 启动 pHash 源的 ./configure 脚本时,日志显示以下错误,尽管我在 /usr/local/include 文件夹中复制了 CImg.h

这真的很糟糕,因为我对 pHash DCT 图像哈希算法功能最感兴趣

2) 启动 make 时 pHash 编译失败并出现以下错误:

知道为什么会这样吗?如上面链接中所述,我确保满足所有依赖项。我想尝试使用 pHash-0.9.5,但在 phash.org 网站上找不到旧版本存档

0 投票
0 回答
396 浏览

ruby - 无法打开库“pHash.dll”

这是我第一次使用 Ruby。目前我正在尝试在 Windows 上运行这个Ruby 脚本。我已经下载了一个提取的这个到c:/PhotoOrganizer-master

它还需要pHash,所以我已经下载并提取(到c:/pHash)。

我设置了以下环境变量:

PHASH_LIB = c:/pHash/Release

目前,当我运行脚本 ( ruby PhotoOrganizer) 时,出现以下错误:

我究竟做错了什么?

0 投票
1 回答
886 浏览

c++ - 尝试将两个视频与 pHash 库及其 ruby​​ 绑定进行比较时出现分段错误错误

我已经使用最新的 ffmpeg 和 pHash 库(ffmpeg-2.2.1 和 pHash-0.9.6)以及 pHash ruby​​ gem(https://github.com/toy/pHash)设置了我的系统。

我正在使用 ruby​​ 并尝试比较两个视频文件,如下所示:

执行此脚本会导致分段错误:

看来崩溃发生在 ph_dct_videohash 函数中,该函数是 pHash 库的一部分。该函数在文件 pHash.cpp 中。我在这里复制它,以防它对某人有意义:

很感谢任何形式的帮助!