96SEO 2026-02-19 12:53 8
2.直方图算法#xff0c;其中包括灰度直方图算法#xff0c;RGB直方图算法#xff0c;

3.灰度图算法#xff1a;MSE、SSIM、…1.哈希方法其中包括均值哈希、插值哈希、感知哈希方法。
计算出图片的哈希值一般使用汉明
方法描述按照某种距离度量的标准对两幅图像的直方图进行相似度的测量。
直方图反应的是图像灰度值得概率分布并没有图像的空间位置信息在里面因此会出现误判比如纹理结构相同但明暗不同的图像应该相似度很高但实际结果是相似度很低而纹理结构不同但明暗相近的图像相似度却很高。
分析两幅图像之间的距离度量采用的是巴氏距离或者归一化相关系数这种用分析数学向量的方法去分析图像本身就是一个很不好的办法。
将图像resize后分离为RGB三个通道再计算每个通道的相似值image1
缺点当差值大于1时会放大误差而当差值小于1时则会缩小误差这是平方运算决定的。
MSE对于较大的误差(1)给予较大的惩罚较小的误差(1给予较小的惩罚。
也就是说对离群点比较敏感受其影响较大。
similarity)结构相似性是一种衡量两幅图像相似度的指标。
在实际应用中可以利用滑动窗将图像分块令分块总数为N考虑到窗口形状对分块的影响采用高斯加权计算每一窗口的均值、方差以及协方差然后计算对应块的结构相似度SSIM最后将平均值作为两图像的结构相似性度量即平均结构相似性SSIM。
计算两个灰度图像之间的结构相似度指数,相似度等于1完美匹配(score,
255).astype(uint8)print(SSIM:{}.format(score))return
将需要处理的图片所放到指定尺寸缩放后图片大小由图片的信息量和复杂度决定。
譬如一些简单的图标之类图像包含的信息量少复杂度低可以缩放小一点。
风景等复杂场景信息量大复杂度高就不能缩放太小容易丢失重要信息。
根据自己需求弹性的缩放。
在效率和准确度之间维持平衡。
通常对比图像相似度和颜色关系不是很大所以处理为灰度图减少后期计算的复杂度。
如果有特殊需求则保留图像色彩。
此处开始与传统的哈希算法不同分别依次计算图像每行像素点的平均值记录每行像素点的平均值。
每一个平均值对应着一行的特征。
对得到的所有平均值进行计算方差得到的方差就是图像的特征值。
方差可以很好的反应每行像素特征的波动既记录了图片的主要信息。
经过上面的计算之后每张图都会生成一个特征值方差。
到此比较图像相似度就是比较图像生成方差的接近成程度。
一组数据方差的大小可以判断稳定性多组数据方差的接近程度可以反应数据波动的接近程度。
我们不关注方差的大小只关注两个方差的差值的大小。
方差差值越小图像越相似
实现图片相似度比较的hash算法有三种均值哈希算法AHash差值哈希算法DHash感知哈希算法
aHash平均值哈希。
速度比较快但是常常不太精确。
pHash感知哈希。
精确度比较高但是速度方面较差一些。
dHash差异值哈希。
精确度较高且速度也非常快。
缩小尺寸将图片缩小到8x8的尺寸总共64个像素。
这一步的作用是去除图片的细节只保留结构、明暗等基本信息摒弃不同尺寸、比例带来的图片差异。
简化色彩将缩小后的图片转为64级灰度。
也就是说所有像素点总共只有64种颜色。
计算平均值计算所有64个像素的灰度平均值比较像素的灰度将每个像素的灰度与平均值进行比较。
大于或等于平均值记为1小于平均值记为0。
计算哈希值将上一步的比较结果组合在一起就构成了一个64位的整数这就是这张图片的指纹。
组合的次序并不重要只要保证所有图片都采用同样次序就行了。
均值哈希算法计算速度快不受图片尺寸大小的影响但是缺点就是对均值敏感例如对图像进行伽马校正或直方图均衡就会影响均值从而影响最终的hash值。
感知哈希算法是一个比均值哈希算法更为健壮的一种算法与均值哈希算法的区别在于感知哈希算法是通过DCT离散余弦变换来获取图片的低频信息。
缩小尺寸pHash以小图片开始但图片大于8x832x32是最好的。
这样做的目的是简化了DCT的计算而不是减小频率。
简化色彩将图片转化成灰度图像进一步简化计算量。
计算DCT计算图片的DCT变换得到32x32的DCT系数矩阵。
缩小DCT虽然DCT的结果是32x32大小的矩阵但我们只要保留左上角的8x8的矩阵这部分呈现了图片中的最低频率。
计算平均值如同均值哈希一样计算DCT的均值。
计算hash值这是最主要的一步根据8x8的DCT矩阵设置0或1的64位的hash值大于等于DCT均值的设为”1”小于DCT均值的设为“0”。
组合在一起就构成了一个64位的整数这就是这张图片的指纹。
结果并不能告诉我们真实性的低频率只能粗略地告诉我们相对于平均值频率的相对比例。
只要图片的整体结构保持不变hash结果值就不变。
能够避免伽马校正或颜色直方图被调整带来的影响。
对于变形程度在25%以内的图片也能精准识别。
将灰度图转为浮点型再进行dct变换cv2.dct()是离弦余弦变换dct
avreage:hash.append(1)else:hash.append(0)return
比pHashdHash的速度要快的多相比aHashdHash在效率几乎相同的情况下的效果要更好它是基于渐变实现的。
缩小尺寸收缩到8x9高x宽的大小一遍它有72的像素点转化为灰度图把缩放后的图片转化为256阶的灰度图。
计算差异值dHash算法工作在相邻像素之间这样每行9个像素之间产生了8个不同的差异一共8行则产生了64个差异值获得指纹如果左边的像素比右边的更亮则记录为1否则为0
cmpHash(hash1,hash2):n0#hash长度不同则返回-1代表传参出错if
range(len(hash1)):#不相等则n计数1n最终为相似度if
hashlib.md5()md.update(file1.read())res1
hashlib.md5()md.update(file2.read())res2
把图片表示成一个向量两个向量夹角的余弦值作为衡量两个个体间差异的大小。
欧氏距离衡量的是空间各点的绝对距离跟各个点所在的位置坐标直接相关
余弦距离衡量的是空间向量的夹角更加体现在方向上的差异而不是位置。
如果保持A点位置不变B点朝原方向远离坐标轴原点那么这个时候余弦距离
cos是保持不变的因为夹角没有发生变化而A、B两点的距离显然在发生改变这就是欧氏距离和余弦距离之间的不同之处。
欧氏距离和余弦距离各自有不同的计算方式和衡量特征因此它们适用于不同的数据分析模型
欧氏距离能够体现个体数值特征的绝对差异所以更多的用于需要从维度的数值大小中体现差异的分析如使用用户行为指标分析用户价值的相似度或差异。
余弦距离更多的是从方向上区分差异而对绝对的数值不敏感更多的用于使用用户对内容评分来区分兴趣的相似度和差异同时修正了用户间可能存在的度量标准不统一的问题因为余弦距离对绝对数值不敏感。
【精选】图像相似度匹配——距离大全_pairwise_distances图像距离-CSDN博客
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback