标签:code 问题 平均值 超过 内存 批量 bsp long 没有
最近由于项目提出需要一个可以识别房源图片盗用问题,由此想到需要一个图片相识度识别的程序,所以百度一番,找个一段图片相识度识别的代码(引用地址:https://blog.csdn.net/chengmodelong/article/details/24521295).
研究一番,在此做下代码原理说明:
将图片缩小到8x8的尺寸, 总共64个像素. 这一步的作用是去除各种图片尺寸和图片比例的差异, 只保留结构、明暗等基本信息.
将缩小后的图片, 转为64级灰度图片.
计算图片中所有像素的灰度平均值
将每个像素的灰度与平均值进行比较, 如果大于或等于平均值记为1, 小于平均值记为0.
将上一步的比较结果, 组合在一起, 就构成了一个64位的二进制整数, 这就是这张图片的指纹.
得到图片的指纹后, 就可以对比不同的图片的指纹, 计算出64位中有多少位是不一样的. 如果不相同的数据位数不超过5, 就说明两张图片很相似, 如果大于10, 说明它们是两张不同的图片.
这里感谢文章作者的详细介绍,原理研究之后,就是开始实践了,demo走起,
比如我们对比下毕老师和 虹国某老师,结果为34,所以这是两张不同的图片
然后让我们做下批量对比。。。。
,跑个程序还出现内存不足??
一番研究发现问题出现在了代码析构上了,
看到这段代码,内心突然想到,image创建的对象一直存在内存里,然后却没有释放,如果进行批量处理就可能造成内存不足了
解决方案就是在对象使用完后,进行内存释放
加上上述代码后,再测试就好了,幸好相关的知识没有还给老师
标签:code 问题 平均值 超过 内存 批量 bsp long 没有
原文地址:https://www.cnblogs.com/ransom/p/11698338.html