如何实现“比较两张图片的相似度”,或者说“比较两张图片是否基本一致”的算法?

这个算法如果能实现, 有很多有用的地方。


        我的想法是从摄像头采集到的视频, 取出其中的bmp图片, 保存一张静止的图片作为参照物, 这个时候假如有一个移动的物体从摄像头经过, 采集到的bmp图片肯定与参照物不一致,这个时候就会把这张图片保存下来, 所以我需要一个算法, 可以比较两张图片是否基本一致。


       在此列出该问题是希望大家各抒己见, 互相讨论一下这个算法的实现思路。


下面是有人提出的思路:

思路一:

有个简单的方法就是随机取两幅图上的相同坐标的色素用Bitmap.GetPixel()方法。。你可以随机取10000次或者多少。然后对比每次取的像素是否相等。。两个变量来累计。。这样就可以粗略的计算出两个图片是否相似了。


思路二:

循环 for  [i , j]
{
读出图片A 一点(像素)的 RGB 数值。
计算出灰度 YA[j][i] = 0.3*R + 0.59*G + 0.11*B
读出图片B 一点(像素)的 RGB 数值。
计算出灰度 YB[j][i] = 0.3*R + 0.59*G + 0.11*B
计算 一点 的 相似系数,
例如 灰度差除以两点平均灰度:
fabs(YA[j][i]-YB[j][i]) /  ((YA[j][i]+YB[j][i])/2.0)  -- 数值越小越相似
}
有了所有点的相似系数,做统计算,例如,把相似系数分20档,
计算落入各档的像素点的个数--就是概率啦。
画 概率分布图 和 累加 概率分布图。
当然,你可以设 累加 概率等于 几的地方 为 相似度 判据。


评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

langeldep

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值