多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > 互聯(lián)網(wǎng) > 用圖片搜索相似圖片(視覺單詞)

用圖片搜索相似圖片(視覺單詞)

來源:程序員人生   發(fā)布時間:2015-03-10 07:51:52 閱讀次數(shù):3726次

代碼地址

  • 代碼GitHub地址

準備文件

  • vlfeat(SIFT的開源實現(xiàn)):下載地址
  • 解壓后將vlfeat-0.9.20inwin32加到系統(tǒng)的Path路徑中,以便在命令行用sift命令
  • 安裝pysqlite:pip install pysqlite
  • 安裝matplotlib:pip isntall matplotlib
  • 安裝cherryPy(輕量級網(wǎng)頁服務(wù)器):pip install cherrypy
  • 圖片庫:10000張貓咪圖片

流程

  • 用vlfeat(SIFT特點模型)提取每張圖片的特點點
  • 將每張圖的特點點采樣聚類成圖片的視覺單詞
  • 即視覺單詞,就是對應(yīng)圖片的代表
  • 創(chuàng)建數(shù)據(jù)庫,將每張圖片的視覺單詞入庫,并建立索引
  • 編寫cherryPy的web利用,根據(jù)點擊的圖片搜索類似的圖片

提取圖片特點點并生成單詞文件

  • 條件保證cmd能履行sift命令
  • CMD履行Step1.py
# -*- coding:utf⑻ -*- # Step1.py:提取圖片的特點點并生成單詞文件vocabulary.pkl import pickle import vocabulary import imtools import sift # imlist是圖片名字的列表,圖片放在static文件夾下 imlist = imtools.get_imlist('static/') # 圖片的總數(shù) nbr_images = len(imlist) # 將每張圖片的特點點寄存進對應(yīng)的.sift特點文件中 featlist = [ imlist[i][:-3]+'sift' for i in range(nbr_images)] for i in range(nbr_images): sift.process_image(imlist[i], featlist[i]) # 利用k-means對圖片特點文件聚類訓(xùn)練出對應(yīng)的單詞 # 時間關(guān)系,這里只用了46張圖做例子,所以只創(chuàng)建46個單詞 voc = vocabulary.Vocabulary('imagewords') voc.train(featlist, 46, 10) # 將單詞都保存到vocabulary.pkl中 with open('vocabulary.pkl', 'wb') as f: pickle.dump(voc,f) # 打印出單詞總數(shù)量 print 'vocabulary is:', voc.name, voc.nbr_words

將圖片單詞信息存進數(shù)據(jù)庫

# -*- coding:utf⑻ -*- # Step2.py:根據(jù)單詞文件,將圖片單詞入sqlite數(shù)據(jù)庫 import pickle import sift import imagesearch import imtools # 圖片名字的列表 imlist = imlist = imtools.get_imlist('static/') # 圖片的數(shù)量 nbr_images = len(imlist) # 對應(yīng)圖片特點文件的列表 featlist = [ imlist[i][:-3]+'sift' for i in range(nbr_images)] # 載入單詞文件 # 將單詞,圖片名,地址存進數(shù)據(jù)庫images.db with open('vocabulary.pkl', 'rb')as f: voc = pickle.load(f) indx = imagesearch.Indexer('images.db', voc) indx.create_tables() for i in range(nbr_images): locs,descr = sift.read_features_from_file(featlist[i]) indx.add_to_index(imlist[i],descr) # 將命令提交履行 indx.db_commit()

配置cherryPy網(wǎng)頁利用

  • 沒點擊圖片時隨機顯示15張圖片
  • 點擊其中1張貓貓圖片,搜索類似的圖片顯示出來
  • 本質(zhì)是根據(jù)點擊圖片的單詞,尋覓在數(shù)據(jù)庫中與之相近的單詞,并將其顯示出來
  • CMD履行Step3.py
  • 在閱讀器閱讀:127.0.0.1:8080
# -*- coding:utf⑻ -*- # Step3.py:用cherryPy做交互界面,顯示結(jié)果 import cherrypy, os, urllib, pickle import imtools from numpy import * import imagesearch # cherryPy頁面 # 網(wǎng)頁根目錄在配置文件service.conf中設(shè)置 # 默許端口是8080 class SearchImage: def __init__(self): # 加載圖片名字列表 self.imlist = imtools.get_imlist('static/') self.nbr_images = len(self.imlist) self.ndx = range(self.nbr_images) # 加載生成好的單詞文件 f = open('vocabulary.pkl', 'rb') self.voc = pickle.load(f) f.close() # 設(shè)置開始顯示的圖片數(shù)目 self.maxres = 15 # 設(shè)置頁面的結(jié)構(gòu) self.header = """ <!doctype html> <head> <title>Image search example</title> </head> <body> """ self.footer = """ </body> </html> """ # 響應(yīng)index頁面 # 沒有搜索的時候隨機顯示圖片 # 搜索的時候顯示與該圖片類似的圖片,根據(jù)視覺單詞 def index(self,query=None): self.src = imagesearch.Searcher('images.db', self.voc) html = self.header html += """ <br /> Click an image to search. <a href='?query='> Random selection </a> of images. <br /><br /> """ if query: # 顯示查詢結(jié)果的圖片 res = self.src.query(query)[:self.maxres] for dist,ndx in res: imname = self.src.get_filename(ndx) html += "<a href='?query="+imname+"'>" html += "<img src='"+imname+"' width='100' />" html += "</a>" else: # 隨機顯示圖片 random.shuffle(self.ndx) for i in self.ndx[:self.maxres]: imname = self.imlist[i] html += "<a href='?query="+imname+"'>" html += "<img src='"+imname+"' width='100' />" html += "</a>" html += self.footer return html index.exposed = True # 啟動利用 cherrypy.quickstart(SearchImage(), '/', os.path.join(os.path.dirname(__file__), 'service.conf'))

效果

  • 不搜索時:

  • 點擊搜索時:

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 手机在线完整视频免费观看 | 黄色免费网站网址 | 亚洲国产人久久久成人精品网站 | 免费网站在线看 | 抖音毛片| 一级做性色a爰片久久毛片 一级做性色a爰片久久毛片免费 | 欧美艳星性videose精品 | 精品一区二区三区免费观看 | 国产v欧美v日本v精品 | 国产aⅴ精品一区二区三区久久 | 亚洲热播 | 国产一级淫片a视频免费观看 | 亚洲天堂黄色 | 日本一区二区三区四区五区 | 国产91区精品福利在线社区 | 国产精品免费播放 | 91人人区免费区人人 | 久久久久久久99精品免费 | аⅴ成人天堂中文在线 | 性欧美成人免费观看视 | 亚洲成a人在线播放www | 春色视频网站 | 午夜影院在线观看免费 | 岛国福利视频 | videos粗暴极端欧美 | 性欧美17一18sex性高清播放 | 美国亚洲成年毛片 | 亚洲日韩欧美一区二区在线 | 成人欧美一区二区三区 | 999国产精品亚洲77777 | 五月天久久综合 | 日本午夜精品一本在线观看 | 一本久道久久综合中文字幕 | 亚洲天堂在线观看视频 | 亚洲欧美激情另类 | 亚洲欧洲久久精品 | 亚欧成人乱码一区二区 | 91精品国产美女福到在线不卡 | 欧美一级毛片欧美一级 | 一本色道久久爱88a 一本视频在线 | 视频在线高清完整免费观看 |