用python实现电脑本地相似图片搜索
最近一周完成了老师留的一个作业,要求用python实现电脑本地相似图片搜索功能,之前我只参考网上的视频自学了python爬虫,还不能说会用python,这次是我第一次独立使用python,所幸的是老师给了基本算法,算法的实现并不难,计算稍微复杂些。
基本算法:颜色矩、标准化后的欧氏距离
颜色矩的介绍可参考后面的链接:颜色矩 百度百科
欧氏距离可参考后面的链接:欧氏距离,看前半部分即可
下面放实现效果:
左侧弹出的两张图片是图片库中相似的两张图片,采用的是PIL显示;右侧控制台中输出的图片是用户拖进去用来做识图的图片,采用的是matplotlib显示,控制台中还输出了图片的相关信息和两两图片标准化后的欧氏距离。
设置阈值的时候出现了点问题,由于仅适用颜色矩作为单一算法有他的局限性,所以没有找到一个合适的阈值能够适用于任意用户拖进来的图片,这可能需要后续的机器学习去实现。
这是我第一次纯自己手敲python,完全没有借鉴网上的代码,敲完之后才发现网上有颜色矩算法的实现,很复杂,看不懂,因为我本人水平有限,所以我的代码没什么难以思考的地方,就是把所有的公式转换成了代码。
下面放部分代码:
a = input("put your picture in:")
carPic1 = Image.open