有什么办法可以实现比较两张图片是否内容相同?
图片内容是交易记录,希望通过外部检测是否有新增的交易记录,或者同一条交易记录,是否有挂单数据上的修改。不需要读取数据,只需要每秒截图相应区域,比较这个截图是否相同.....
图片内容是交易记录,希望通过外部检测是否有新增的交易记录,或者同一条交易记录,是否有挂单数据上的修改。不需要读取数据,只需要每秒截图相应区域,比较这个截图是否相同..
展开
1个回答
2015-04-20 · 知道合伙人互联网行家
关注
展开全部
思路一:
有个简单的方法就是随机取两幅图上的相同坐标的色素用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档,
计算落入各档的像素点的个数--就是概率啦。
画 概率分布图 和 累加 概率分布图。
当然,你可以设 累加 概率等于 几的地方 为 相似度 判据。
有个简单的方法就是随机取两幅图上的相同坐标的色素用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档,
计算落入各档的像素点的个数--就是概率啦。
画 概率分布图 和 累加 概率分布图。
当然,你可以设 累加 概率等于 几的地方 为 相似度 判据。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |