我目前正在研究一个项目,以便为保存在“图像”文件夹中的数据集制作图像搜索引擎。为此,我使用了python库OpenCV。我为图像描述符编写了程序。但是,当我制作用于对数据集中的每个图像编制索引以提供唯一ID的程序时,便会创建包含0个索引文件的CSV文件。
对于该程序,我创建了一个循环,该循环有助于逐个索引图像,但是每次执行创建CSV文件的命令时,它的确创建了CSV,但是索引为0。
这是创建CSV文件的命令
python index.py --/images dataset --index index.csv
这是index.py的代码,该代码索引了“图像”目录中的所有图像
,然后创建一个CSV文件。这里的“图像”文件夹与程序文件位于同一文件夹中
from colordescriptor import ColorDescriptor
import argparse
import glob
import cv2
ap = argparse.ArgumentParser()
ap.add_argument("-d", "--/images", required=True,
help="Path to the directory that contains the images to be indexed")
ap.add_argument("-i", "--index", required=True,
help="Path to where the computed index will be stored")
args = vars(ap.parse_args())
cd = ColorDescriptor((8, 12, 3))
output = open(args["index"], "w")
for imagePath in glob.glob(args["/images"] + "/*.png"):
imageID = imagePath[imagePath.rfind("/") + 1:]
image = cv2.imread(imagePath)
features = cd.describe(image)
features = [str(f) for f in features]
output.write("%s,%s\n" % (imageID, ",".join(features)))
output.close()
当我运行命令python index.py --/images dataset --index index.csv
index.csv文件并运行该命令时,预期结果应该是这样的
wc -l index.csv
它应该给出类似805 index.csv
的结果
其中“ 803”为否“图像”文件夹中的图像数量。
但是我总是得到0 index.csv