看到您的博客“【图像隐写数据集】图像隐写数据集整理”,发现了有关BOWS-2的数据集问题,现在已经在私信中私信给您,请您看到回复一下,谢谢!
不知道你这个问题是否已经解决, 如果还没有解决的话:本部分主要实现目的是将模型数据导入数据库。照常先载入图像列表、特征列表及词汇,创建Indexer类对象利用数据库创建图像索引。
实现代码:
# -*- coding: utf-8 -*-
import pickle
from PCV.imagesearch import imagesearch
from PCV.localdescriptors import sift
from sqlite3 import dbapi2 as sqlite
from PCV.tools.imtools import get_imlist
#获取图像列表
imlist = get_imlist('F:/Pictures/one/')
nbr_images = len(imlist)
#获取特征列表
featlist = [imlist[i][:-3]+'sift' for i in range(nbr_images)]
# load vocabulary
#载入词汇
with open('D:/dasan2/vocabulary.pkl', 'rb') as f:
voc = pickle.load(f)
#创建索引
indx = imagesearch.Indexer('testImaAdd3.db',voc)
indx.create_tables()
# go through all images, project features on vocabulary and insert
#遍历所有的图像,并将它们的特征投影到词汇上
for i in range(nbr_images)[:1000]:
locs,descr = sift.read_features_from_file(featlist[i])
indx.add_to_index(imlist[i],descr)
# commit to database
#提交到数据库
indx.db_commit()
con = sqlite.connect('testImaAdd3.db')
print (con.execute('select count (filename) from imlist').fetchone())
print (con.execute('select * from imlist').fetchone())
可得到一个数据库文件:
将上面得到的数据模型存放数据库testImaAdd3.db中,即运行下面代码会生成一个testImaAdd3.db数据库文件。