问题标签 [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 投票
1 回答
1026 浏览

ffmpeg - FFMPEG 已安装但未找到

我正在尝试安装pHash,但是当我执行./configure此消息时返回:

但是 FFMPEG 已正确安装,实际上执行ffmpeg它会返回:

为什么会发生这种情况?

0 投票
1 回答
380 浏览

php - PHP:图像与散列的精确比较

最初的任务是处理图像,对其进行散列,使一些繁重的图像工作并将此散列和工作结果存储在数据库中,在下一次使用相同图像的请求期间,我想将图像散列与我在数据库中的散列进行比较并加载数据库缓存结果减少了繁重的工作量。

所以问题是,要散列什么?用什么来散列?我看到了 phash 的良好 php 实现,但它似乎非常适合相似性检查,但我们需要精确匹配。phash 也适用于精确数学吗?

谢谢!

0 投票
1 回答
3499 浏览

java - 检测有些不同的图像 - 是否有任何用于感知散列和差分散列的 java 实现?

我正在研究一种用于检测相似且有些不同的媒体图像的解决方案。

我遇到过很多文章建议处理图像的技术,例如 -图像比较 - 快速算法

  1. 基于文件哈希(md5、sha1 等) - 尝试过,对于完全相同的内容效果很好。

  2. perceptual hashing (phash) for rescaled images - 寻找与 phash.org 提供的一样准确的 java 实现。据报道,@ http://pastebin.com/Pj9d8jt5提供的一种 java 解决方案存在误报,但我还没有尝试过。

  3. 修改图像的基于特征的 (SIFT) - 寻找一些示例代码来启动。

如果有任何其他建议,请分享。

0 投票
0 回答
818 浏览

macos - pHash的酿造公式

经过几天的谷歌搜索并尝试了各种建议,我放弃了尝试从源代码为 MacOS Sierra 构建 pHash。然后有一条评论指出了使用 Brew 构建 pHash 的几个问题。在走了几条路都没有成功之后,我想我只想问是否有人有适用于 MacOS Sierra 的 pHash 公式。

0 投票
1 回答
114 浏览

python - 获取不同文件夹中元素的组合但不组合同一文件夹中的元素,python

我是 Python 的初学者,在我问这个问题之前,我努力在这里找到答案。我有不同的设计,有几张照片,我想比较它们的汉明距离。但我不想比较位于同一文件夹中的相同设计文件的图像。我基于一个名为 Imagehash 的库进行比较。在比较了不同的图像组合之后,我想保留那些具有最高汉明距离得分的图像。让我用一个简单的例子来解释我想要什么:

在文件夹 table 中有三个图像:table_1.jpg、table_2.jpg、table_3.jpg 在文件夹 chair 中有两个图像:chair_1.jpg、chair_2.jpg

我想要得到的是文件的文件路径(我可以这样做),以便稍后使用 Image.open() 和 imagehash.phash 函数。组合应如下所示:

然后我必须在“_”之后拆分,并使用 groupby 和 itemgetter,我猜

0 投票
1 回答
48 浏览

cluster-analysis - 可以使用什么机制来量化非数字列表之间的相似性?

我有一个食谱数据库,它本质上是一个成分列表及其相关数量。如果给您一个食谱,您将如何识别允许变化和遗漏的相似食谱?例如,用牛奶代替水,用蜂蜜代替糖,或者完全省略一些东西来调味。

当前的策略是对主要成分的组合进行多次内连接,但是对于大型数据库,这可能会非常慢。还有另一种方法可以做到这一点吗?相当于感知散列的东西是理想的!

0 投票
2 回答
3054 浏览

javascript - JS - 如何检查 2 个图像(它们的哈希)是否相似

目标
找到一种检查 2 个图像是否相似的好方法,比较它们的哈希配置文件。哈希是一个包含0 和 1 值的简单数组

简介
我有 2 张图片。它们是相同的图像,但有一些细微差别:一个具有不同的亮度、旋转和拍摄。
我想要做的是创建一个 Javascript 方法来比较 2 个图像并计算一个百分比值来说明它们的相似程度

我所做的
在将 2 张图片上传到 html5 画布以获取它们的图像数据后,我使用了pHash算法 (www.phash.org) 来获取它们的哈希表示。
哈希是一个包含 0 和 1 值的数组,它以“简化”形式重新创建图像。
我还创建了一个 JS 脚本,它生成一个带有黑色单元格的 html 表格,其中数组包含 1。
结果是以下屏幕截图(图像是梵高图片):

截屏

现在,我应该做的是比较两个数组以获得百分比值,以了解它们相似的“多少”。
我发现谷歌搜索的大部分哈希 Javascript 算法已经有一个比较算法:汉明距离算法。它非常简单和快速,但不是很精确。事实上,汉明距离算法说我截图中的 2 张图片有67% 的相似度

问题
从 2 个长度相同的简单数组开始,填充 0 和 1 值:什么是更精确地确定相似度的好算法?

NOTES
- 纯 Javascript 开发,没有第三方插件或框架。
- 当两幅图像相同但它们非常不同(强烈旋转、完全不同的颜色等)时,无需复杂的算法来找到正确的相似性。

谢谢

相码

汉明距离码

注意:array.forEach 不是纯 JavaScript。将其视为替换:for (var i = 0; i < array.length; i++)。

0 投票
0 回答
48 浏览

performance - 如何将 Imagick 转换和所有依赖项加载到 /dev/shm 以提高性能?

我正在尝试使用 Imagick 命令“/dev/shm/convert s1 s2 -metric RMSE -format %[distortion] -compare info:”比较至少 40000 个视频截图。我已成功获得约 0.04 秒的平均速度。

如果我在 3 个线程中使用转换命令 CPU 上升到所有内核的 80-90%(应该是),但服务器上的负载也会成倍增加,并将平均速度影响到 ~0.09 秒

我正在使用来自 /dev/shm 的 s1 和 s2 图像路径来降低对加载服务器和 SSD 的影响。我也使用 /dev/shm 的转换命令,还不够,因为它使用 SSD 中的其他库。

我不知道将它们复制到 /dev/shm 的依赖库是什么,或者任何其他方法都可以很好地实现相同的结果。

0 投票
1 回答
903 浏览

php - 使用 PHASH 和 PHP 生成哈希

如何PHASH从 in 中的字符串生成值PHP

我继承了一个ASP使用PHASHwith strings不是图像路径)的代码库。来自研究,PHASH用于图像。

我目前正在使用 重写这部分代码库PHP,并且有几个库看起来很有用:

但是,它们都需要图像的路径。我已经尝试过jenssegers/imagehash,当我传递一个随机字符串时会引发异常。

以下代码说明PHASH当前在遗留代码库中的使用方式:

更新

PHASHPHash是代码库中的自定义函数,由于大小写混合( vs PHASH),我最初未能找到它。

幸运的是,我找到了以下SO 答案,它是用C#. 感谢@Lathejockey81 提供答案,我已将其转换为下面的PHP(作为答案)。

0 投票
1 回答
691 浏览

mysql - MySQL:通过感知哈希相似度对结果进行分组

假设我们有Image带有以下列的 MySQL 表

  • ID
  • 用户身份
  • p_hash

我知道如何计算新插入行的感知散列与表中所有现有数据之间的汉明距离(以显示相似的图像)。SQL 查询如下所示:

我想对每个现有的图像做同样的事情。(检查数据库中是否有类似的图像)所以,我已经遍历了Image表的每一行,执行与上面相同的过程并从表中找到相似的图像。

现在的问题是,在整个过程之后,只有当每个组的元素至少有一个不同的user_idid 时,我才想获得相似的图像组?

因此,如果发现一组相似图像属于一个用户,则跳过它。但如果它属于多个不同的用户,则将其作为结果之一返回。

请帮忙弄清楚。