日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > 用圖片搜索相似圖片(視覺單詞)

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

來源:程序員人生   發布時間:2015-03-10 07:51:52 閱讀次數:3740次

代碼地址

  • 代碼GitHub地址

準備文件

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

流程

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

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

  • 條件保證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/') # 圖片的總數 nbr_images = len(imlist) # 將每張圖片的特點點寄存進對應的.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對圖片特點文件聚類訓練出對應的單詞 # 時間關系,這里只用了46張圖做例子,所以只創建46個單詞 voc = vocabulary.Vocabulary('imagewords') voc.train(featlist, 46, 10) # 將單詞都保存到vocabulary.pkl中 with open('vocabulary.pkl', 'wb') as f: pickle.dump(voc,f) # 打印出單詞總數量 print 'vocabulary is:', voc.name, voc.nbr_words

將圖片單詞信息存進數據庫

# -*- coding:utf⑻ -*- # Step2.py:根據單詞文件,將圖片單詞入sqlite數據庫 import pickle import sift import imagesearch import imtools # 圖片名字的列表 imlist = imlist = imtools.get_imlist('static/') # 圖片的數量 nbr_images = len(imlist) # 對應圖片特點文件的列表 featlist = [ imlist[i][:-3]+'sift' for i in range(nbr_images)] # 載入單詞文件 # 將單詞,圖片名,地址存進數據庫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網頁利用

  • 沒點擊圖片時隨機顯示15張圖片
  • 點擊其中1張貓貓圖片,搜索類似的圖片顯示出來
  • 本質是根據點擊圖片的單詞,尋覓在數據庫中與之相近的單詞,并將其顯示出來
  • CMD履行Step3.py
  • 在閱讀器閱讀:127.0.0.1:8080
# -*- coding:utf⑻ -*- # Step3.py:用cherryPy做交互界面,顯示結果 import cherrypy, os, urllib, pickle import imtools from numpy import * import imagesearch # cherryPy頁面 # 網頁根目錄在配置文件service.conf中設置 # 默許端口是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() # 設置開始顯示的圖片數目 self.maxres = 15 # 設置頁面的結構 self.header = """ <!doctype html> <head> <title>Image search example</title> </head> <body> """ self.footer = """ </body> </html> """ # 響應index頁面 # 沒有搜索的時候隨機顯示圖片 # 搜索的時候顯示與該圖片類似的圖片,根據視覺單詞 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: # 顯示查詢結果的圖片 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'))

效果

  • 不搜索時:

  • 點擊搜索時:

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美jizz18| 一区在线观看视频 | 丁香婷婷色 | 国产精品一区二区无线 | 久久国产精品一区 | 中文成人在线 | 亚洲xxxx做受欧美 | 久久久网站 | 在线日韩精品视频 | 国内精品国产成人国产三级粉色 | 99精品电影 | 亚洲色图 偷拍自拍 | 亚洲一区二区三区综合 | 日本黄在线观看 | 黄色在线免费看 | 国产亚洲综合性久久久影院 | av在线中文 | 精品一区二区三区免费观看 | 亚洲毛片一区二区 | 福利视频一二三在线视频免费观看 | 最近中文字幕免费在线观看 | 国产亚洲视频在线观看 | 二区视频在线 | 日韩一级 | 欧洲天堂网 | 精品国产一二 | 嫩草久久 | 中文字幕在线观看第一页 | 国产精品一区久久久 | 黄色一级视频 | av爽爽 | 免费观看黄色一级片 | 久久成人在线视频 | 欧美在线视频一区 | 亚洲精品视频自拍 | 成人97视频一区二区 | 久久免费视频观看 | 国产免费视屏 | 国产在线播放一区 | 日韩中文在线视频 | 国产精品久久久久久久久久尿 |