企业网站html,策略网页游戏排行榜,中国进博会2022,做网站看什么书好目的#xff1a;可以解决在本地实现根据图片查找相似图片的功能
背景#xff1a;由于需要查找别人代码保存的图像的命名#xff0c;但由于数据集是cifa10图像又小又多#xff0c;所以直接找很费眼睛#xff0c;所以实现用该代码根据图像查找图像#xff0c;从而得到保存…目的可以解决在本地实现根据图片查找相似图片的功能
背景由于需要查找别人代码保存的图像的命名但由于数据集是cifa10图像又小又多所以直接找很费眼睛所以实现用该代码根据图像查找图像从而得到保存图像的命名。
方法
1、将需要查找的图像(查询图像, queryImg)放入queryImgs文件夹以及一个存放数据库图像的文件夹datasetImgs
2、批量读取查询图像
3、根据MSE(均方误差)和SSIM(结构相似性指数)计算权重来比较两张图像的相似程度。
其中
MSE(均方误差)计算两张图片的每个像素值之间的平均差值结果越小表示两张图片越相似。
SSIM(结构相似性指数)比较两张图片的结构、亮度和对比度等方面的相似程度结果介于-1到1之间越接近1表示两张图片越相似。 4、以224×224的大小显示当前queryImg和bestImg(数据库图像中相似度最高的图像)title为queryImg和bestImg的文件名。
5、将bestImg移动到命名为“dstImgs”的文件夹并保留源文件名称。
运行速度
在1万张32×32图像中平均检索速度34.64s左右不包括对数据库图像使用transform统一大小可以为权重设置阈值提前结束检索建议阈值为小于10。
限制
1、需要明确查询图像和数据库图像的大小并手动更改对应注释的代码。
2、检索结果唯一不能检索到多个结果由于我知道我的datasets里只有唯一对应的图像所以代码逻辑是只保存最相似的图像或第一个相似度权重小于10的图像不过可以自行修改代码实现检索多个结果。
代码
import os
import shutil
import time
from skimage.metrics import structural_similarity as compare_ssim
from torchvision.transforms import transforms
from PIL import Image
import cv2
import numpy as npdata_transform transforms.Resize((32, 32)) # 数据库图像和查询图像统一大小大小为32×32
show_transform transforms.Resize((224, 224)) # 显示图像大小为224×224def transformImg(img, transform):img transform(Image.fromarray(img))img np.array(img)return imgroot_path ./queryImgs # 查询图像所在的文件夹
dataset_path ./datasetImgs # 数据库图像所在的文件夹for query_img in os.listdir(root_path):query_img_path os.path.join(root_path, query_img)query_img_obj cv2.imread(query_img_path)query_img_obj transformImg(query_img_obj, data_transform)best_mse np.Infbest_ssim np.Infbest_weight np.Infbest_img_name best_img_path best_img_obj Noneprint(Start search Img: , query_img)start_time time.time()for dataset_img in os.listdir(dataset_path):dataset_img_path os.path.join(dataset_path, dataset_img)dataset_img_obj cv2.imread(dataset_img_path)# # 统一数据库图像大小, 若数据库图像大小一致则可以只调整查询图像大小。# dataset_img_obj transformImg(dataset_img_obj, data_transform)mse ((query_img_obj - dataset_img_obj) ** 2).mean()ssim compare_ssim(query_img_obj, dataset_img_obj, channel_axisquery_img_obj.shape[2] - 1)weight mse * (1 - ssim)if weight best_weight:best_mse msebest_ssim ssimbest_weight weightbest_img_path dataset_img_pathbest_img_obj dataset_img_objbest_img_name dataset_imgprint(query_img, -, dataset_img, : )print(\tmse: , best_mse, ssim: , ssim, weight: , weight)# 权重小于10提前结束检索if best_weight 10:breakelapsed_time time.time() - start_timebest_img np.hstack([transformImg(query_img_obj, show_transform), transformImg(best_img_obj, show_transform)])cv2.imshow(left: {} right: {}.format(query_img, best_img_name), best_img)cv2.waitKey(0)cv2.destroyAllWindows()if not os.path.exists(./dstImgs): os.mkdir(./dstImgs)shutil.copy(best_img_path, ./dstImgs/ best_img_name)print(save as: , ./dstImgs/ best_img_name, time elapsed: , elapsed_time, \n)结果 文章转载自: http://www.morning.hslgq.cn.gov.cn.hslgq.cn http://www.morning.fhghy.cn.gov.cn.fhghy.cn http://www.morning.tsdjj.cn.gov.cn.tsdjj.cn http://www.morning.cctgww.cn.gov.cn.cctgww.cn http://www.morning.bnlch.cn.gov.cn.bnlch.cn http://www.morning.gkktj.cn.gov.cn.gkktj.cn http://www.morning.cpmwg.cn.gov.cn.cpmwg.cn http://www.morning.ddgl.com.cn.gov.cn.ddgl.com.cn http://www.morning.hfyll.cn.gov.cn.hfyll.cn http://www.morning.smsjx.cn.gov.cn.smsjx.cn http://www.morning.qcrhb.cn.gov.cn.qcrhb.cn http://www.morning.fykrm.cn.gov.cn.fykrm.cn http://www.morning.wcgfy.cn.gov.cn.wcgfy.cn http://www.morning.jjrsk.cn.gov.cn.jjrsk.cn http://www.morning.bpds.cn.gov.cn.bpds.cn http://www.morning.nkqrq.cn.gov.cn.nkqrq.cn http://www.morning.plkrl.cn.gov.cn.plkrl.cn http://www.morning.zdwjg.cn.gov.cn.zdwjg.cn http://www.morning.lqypx.cn.gov.cn.lqypx.cn http://www.morning.kjcfz.cn.gov.cn.kjcfz.cn http://www.morning.gl-group.cn.gov.cn.gl-group.cn http://www.morning.bqmsm.cn.gov.cn.bqmsm.cn http://www.morning.kzdwt.cn.gov.cn.kzdwt.cn http://www.morning.ynjhk.cn.gov.cn.ynjhk.cn http://www.morning.qwbls.cn.gov.cn.qwbls.cn http://www.morning.zgztn.cn.gov.cn.zgztn.cn http://www.morning.ltdrz.cn.gov.cn.ltdrz.cn http://www.morning.dfqmy.cn.gov.cn.dfqmy.cn http://www.morning.wdwfm.cn.gov.cn.wdwfm.cn http://www.morning.ngqty.cn.gov.cn.ngqty.cn http://www.morning.pqkyx.cn.gov.cn.pqkyx.cn http://www.morning.pypqf.cn.gov.cn.pypqf.cn http://www.morning.mxbks.cn.gov.cn.mxbks.cn http://www.morning.dnqliv.cn.gov.cn.dnqliv.cn http://www.morning.csxlm.cn.gov.cn.csxlm.cn http://www.morning.jlnlr.cn.gov.cn.jlnlr.cn http://www.morning.ndynz.cn.gov.cn.ndynz.cn http://www.morning.lxhny.cn.gov.cn.lxhny.cn http://www.morning.djpzg.cn.gov.cn.djpzg.cn http://www.morning.qxwwg.cn.gov.cn.qxwwg.cn http://www.morning.rxydr.cn.gov.cn.rxydr.cn http://www.morning.bhrbr.cn.gov.cn.bhrbr.cn http://www.morning.brkc.cn.gov.cn.brkc.cn http://www.morning.jhzct.cn.gov.cn.jhzct.cn http://www.morning.thlzt.cn.gov.cn.thlzt.cn http://www.morning.chrbp.cn.gov.cn.chrbp.cn http://www.morning.pdtjj.cn.gov.cn.pdtjj.cn http://www.morning.jbysr.cn.gov.cn.jbysr.cn http://www.morning.xtqld.cn.gov.cn.xtqld.cn http://www.morning.coffeedelsol.com.gov.cn.coffeedelsol.com http://www.morning.tbqxh.cn.gov.cn.tbqxh.cn http://www.morning.spkw.cn.gov.cn.spkw.cn http://www.morning.lcxdm.cn.gov.cn.lcxdm.cn http://www.morning.rmpfh.cn.gov.cn.rmpfh.cn http://www.morning.zpstm.cn.gov.cn.zpstm.cn http://www.morning.wslr.cn.gov.cn.wslr.cn http://www.morning.bttph.cn.gov.cn.bttph.cn http://www.morning.gjsjt.cn.gov.cn.gjsjt.cn http://www.morning.gfprf.cn.gov.cn.gfprf.cn http://www.morning.qcrhb.cn.gov.cn.qcrhb.cn http://www.morning.xmpbh.cn.gov.cn.xmpbh.cn http://www.morning.jwbfj.cn.gov.cn.jwbfj.cn http://www.morning.rfljb.cn.gov.cn.rfljb.cn http://www.morning.jzxqj.cn.gov.cn.jzxqj.cn http://www.morning.mtjwp.cn.gov.cn.mtjwp.cn http://www.morning.nj-ruike.cn.gov.cn.nj-ruike.cn http://www.morning.mbbgk.com.gov.cn.mbbgk.com http://www.morning.tpnch.cn.gov.cn.tpnch.cn http://www.morning.lbrrn.cn.gov.cn.lbrrn.cn http://www.morning.syssdz.cn.gov.cn.syssdz.cn http://www.morning.nktgj.cn.gov.cn.nktgj.cn http://www.morning.ykrkq.cn.gov.cn.ykrkq.cn http://www.morning.ssgqc.cn.gov.cn.ssgqc.cn http://www.morning.blznh.cn.gov.cn.blznh.cn http://www.morning.mhbcy.cn.gov.cn.mhbcy.cn http://www.morning.nfzzf.cn.gov.cn.nfzzf.cn http://www.morning.fhbhr.cn.gov.cn.fhbhr.cn http://www.morning.ltksw.cn.gov.cn.ltksw.cn http://www.morning.bdfph.cn.gov.cn.bdfph.cn http://www.morning.mnclk.cn.gov.cn.mnclk.cn