将每个像素的灰度级与平均值进行比较(灰度值和像素值的区别)(像素灰度级只有两级的图像称为)

这项技术是如何工作的 计算机如何知道两张图片是相似的

以下是最简单的实现之一:

第一步,缩小尺寸。

将图像大小减小到8x8,总共64个像素。此步骤的功能是删除图片的细节,仅保留结构的明暗等基本信息,并丢弃不同大小比例造成的差异。

第二步:简化颜色。

将缩小后的图像设置为64级灰度。这意味着所有像素总共有64种颜色。

[搜索新闻]

步骤3:计算平均值。

计算所有64个像素的灰度平均值。

第四步是比较像素的灰度。

将每个像素的灰度级与平均值进行比较。大于或等于平均值1;如果小于平均值,则为0。

步骤5:计算哈希值。

上一次比较的结果合在一起,形成了一个64位整数,这就是这张照片的指纹。构图顺序并不重要,只要所有图像的顺序相同即可。

该算法的优点是简单快速,并且不受图像大小的影响。缺点是不能改变图像的内容。如果你在图片上加上几个词,它就认不出来了。因此,它的最佳用途是根据缩略图找到原始图像。

在实际应用中,通常使用功能更强大的pHash算法和SIFT算法来识别图像的变形。只要它们的变形不超过25%,它们就会与原版匹配。这些算法更复杂,但原理与上面的简单算法相同,该算法将图像转换为哈希字符串,然后进行比较。

预处理:读取图像

第一步,缩小尺寸。

将图像大小减小到8x8,总共64个像素。此步骤的功能是删除图片的细节,仅保留结构的明暗等基本信息,并丢弃不同大小比例造成的差异。

第二步:简化颜色。

将缩小后的图像设置为64级灰度。

步骤3:计算平均值。

计算所有64个像素的灰度平均值。

第四步是比较像素的灰度。

将每个像素的灰度级与平均值进行比较。大于或等于平均值1;如果小于平均值,则为0。

步骤5:计算哈希值。

上一次比较的结果合在一起,形成了一个64位整数,这就是这张照片的指纹。构图顺序并不重要,只要所有图像的顺序相同即可。

你可以把几张图片放在一起,计算它们的汉明距离,看看这两张图片是否相似。

该算法的优点是简单快速,并且不受图像大小的影响。缺点是不能改变图像的内容。如果你在图片上加上几个词,它就认不出来了。因此,它的最佳用途是根据缩略图找到原始图像。

在实际应用中,通常使用功能更强大的pHash算法和SIFT算法来识别图像的变形。只要它们的变形不超过25%,它们就会与原版匹配。这些算法更复杂,但原理与上面的简单算法相同,该算法将图像转换为哈希字符串,然后进行比较。

颜色分布法

每种颜色都由红、绿、蓝三原色组成,因此上图中有四个直方图。

如果每个原色可以具有256个值,则整个颜色空间有1600万种颜色。对于1600万个颜色比较直方图,计算量实在太大,因此需要一种简化的方法。0~255可分为四个区:0~63为0区,64~127为1区,128~191为2区,192~255为3区。这意味着红、绿和蓝有四个区域,总共有64个组合。

任何颜色都必须属于64种组合中的一种,以便可以计算每个组合中的像素数。

上面是图像的颜色分布表。提取表格的最后一列以形成64维向量7414230,0,0,8…,109,0,0341553929。该向量是图像的特征值或指纹。

找到相似的图像就是找到最相似的向量。这可以使用皮尔逊相关系数或余弦相似性来计算。

双内容特征法

除了颜色组成,您还可以从比较图片中内容的相似性开始。

首先,将原始图像转换为较小的灰度图像,例如50x50像素。然后,确定将灰色图片转换为黑白图片的阈值。

如果两幅图像相似,它们的黑白轮廓应该相似。接下来的问题是,如何首先确定一个合理的阈值来正确渲染照片中的轮廓

1979年,日本学者大津昭之证明了“类内最小差异”和“类间最大差异”是同一件事,即对应于相同的阈值。他提出了一个简单的算法来找到这个阈值,称为大津法。他是怎么做到的。

假设一幅图像总共有N个像素,其中N1个像素的灰度值小于阈值,n2个像素的灰值大于或等于阈值。W1和W2表示这两个像素的各自特定权重。

w1=n1/n

w2=n2/n

还假设灰度值小于阈值的所有像素的均值和方差分别为μ1和σ1,灰度值大于或等于阈值的所有象素的均值和偏差分别为μ2和σ2。所以,我们得到了

类内差异=W1

类之间的差异=W1w2^2

将每个像素的灰度级与平均值进行比较(灰度值和像素值的区别)(像素灰度级只有两级的图像称为) 热门话题

可以证明这两个方程是等价的:找到类内差分的最小值与找到类间差分的最大值是相同的。然而,就计算难度而言,后一种计算更容易。

下一步是使用“穷举法”将阈值从灰度的最低值取到最高值,并将其代入上述公式。“类内差异最小”或“类间差异最大”的值是最终阈值。有关特定示例和Java算法,请参见此处。

使用50x50像素的黑白缩略图,可以得到50x50 0-1矩阵。矩阵的每个值对应于原始图像的一个像素,0表示黑色,1表示白色。该矩阵是图像的特征矩阵。

两个特征矩阵的差异越小,两幅图像就越相似。这可以通过“异或运算”完成即,如果两个值中只有一个为1,结果为1,否则结果为0。对不同图像的特征矩阵执行“异或”。结果中的数字越少,图像就越相似。

链接到原始文章:

相似图像搜索原理

相似图像搜索原理

谷歌到图搜索图-类似图像搜索原理-Java实现

以上内容大部分直接抄袭自阮逸峰易斗罗红的博客,想看原创童鞋可以去顶部链接点击查看。


1e

发表评论

Copyright 2002-2022 by 正益农产品网(琼ICP备2022001899号-3).All Rights Reserved.