目录
相关文章
ML之相似度计算:图像数据、字符串数据等计算相似度常用的十种方法简介、代码实现
ML之Hash_EditDistance&Hash_HammingDistance&Hog_HanMing&Cosin&SSIM:基于输入图片利用多种算法进行判别
CV之Hog+HamMingDistance:基于Hog提取和汉明距离对比的应用—图像相似度对比之for循环将多个成对图片依次对比并输出相似度
ML之Hash_EditDistance:基于输入图片哈希化(均值哈希+差值哈希)即8*8个元素的单向vector利用编辑距离算法进行判别
ML之Hash_HamMingDistance:基于输入图片哈希化(均值哈希+差值哈希)即8*8个元素的单向vector利用汉明距离算法进行判别
ML之Hog_HammingDistance:基于Hog特征提取“RGB”图像的768个值的单向vector利用汉明距离算法进行判别
ML之Cosin:基于输入图片RGB均值化转为单向vector利用Cosin(余弦相似度)算法进行判别
ML之SSIM:基于输入图片RGB的三维向量利用SSIM(结构相似性度量)算法进行判别
测试数据集
算法原理:基于Hog的图像检测+计算图像相似度(Sim+汉明距离)
核心代码
相关文章:CV之Hog+HanMing:基于Hog提取和汉明距离对比的应用—图像相似度对比之for循环将多个成对图片依次对比并输出相似度
1. def calc_similar(li, ri): 2. res=hist_similar(li.histogram(), ri.histogram())*100 3. return sum(hist_similar(l.histogram(), r.histogram()) for l, r in zip(split_image(li), split_image(ri))) / 16.0 4. 5. 6. def calc_similar_by_path(lf, rf): 7. li, ri = make_regalur_image(Image.open(lf)), make_regalur_image(Image.open(rf)) 8. return calc_similar(li, ri) 9. 10. def make_doc_data(lf, rf): 11. li, ri = make_regalur_image(Image.open(lf)), make_regalur_image(Image.open(rf)) 12. li.save(lf + '_regalur.png') 13. ri.save(rf + '_regalur.png') 14. fd = open('stat.csv', 'w') 15. fd.write('\n'.join(l + ',' + r for l, r in zip(map(str, li.histogram()), map(str, ri.histogram())))) 16. # print >>fd, '\n' 17. fd.write(','.join(map(str, ri.histogram()))) 18. fd.close() 19. li = li.convert('RGB') 20. draw = ImageDraw.Draw(li) 21. for i in range(0, 256, 64): 22. draw.line((0, i, 256, i), fill = '#ff0000') 23. draw.line((i, 0, i, 256), fill = '#ff0000') 24. li.save(lf + '_lines.png')