예제 #1
0
# verifica o metodo a ser usado e inicializa um objeto para o respectivo metodo
if(args["method"].upper() == "FOURIER"):
	queryDesc = FourierDescriptor(args["mask"])
	indexFilepath = "indexes/" + str(args["mask"]) + "fourierindex.csv"
elif(args["method"].upper() == "GCH"):
	queryDesc = GCHDescriptor((9, 12, 4))
	indexFilepath = "indexes/gchindex.csv"
elif(args["method"].upper() == "LCH"):
	queryDesc = LCHDescriptor((9, 12, 3))
	indexFilepath = "indexes/lchindex.csv"
else:
	sys.exit("\nMetodo descritor invalido!\n")

# carrega a imagem de consulta em memoria e aplica o descritor
query = cv2.imread(args["query"])
queryFeatures = queryDesc.describe(query)

# inicializa um objeto que ira' fazer a comparacao da imagem de consulta com o banco de imagens
searcher = Searcher(indexFilepath)
# realiza a consulta das n-imagens mais semelhantes 
results = searcher.search(queryFeatures, int(args["limit"]), args["distance"])

############################## DESCOMENTAR AQUI PRA MANDAR #####################################################
# percorre o vetor com as imagens mais semelhantes e imprime na saida padrao em ordem decrescente de similaridade
#for (score, imageID) in results:
#	print imageID
################################################################################################################
t2 = time.time()
print "Tempo: %.2f s" % (t2 - t1)
############################## COMENTAR DAQUI PARA BAIXO SE DESCOMENTAR EM CIMA ######################################################
예제 #2
0
    indexFilepath = "indexes/lchindex.csv"
else:
    sys.exit("Metodo descritor invalido!")

# abre o indice para escrita
indexFile = open(indexFilepath, "w")

# atraves da funcao glob do modulo glob busca os nomes da imagens
for imagePath in glob.glob(args["images"] + "/*.jpg"):
    # extrai o numero da imagem
    ini = imagePath.rfind("/") + 1
    end = imagePath.rfind(".")
    imageID = imagePath[ini:end]
    # carrega a imagem em memoria
    image = cv2.imread(imagePath)

    # caso a imagem nao esteja vazia
    if image is not None:
        # aplica o descritor na imagem
        features = descriptor.describe(image)

        # escreve o vetor de caracterisicas no arquivo de indice (cada linha e' uma imagem)
        features = [str(f) for f in features]
        indexFile.write("%s, %s\n" % (imageID, ",".join(features)))

indexFile.close()

print "Indice gerado com sucesso!"

t2 = time.time()
print "Tempo: %.2f s" % (t2 - t1)
예제 #3
0
else:
    sys.exit("Metodo descritor invalido!")

# abre o indice para escrita
indexFile = open(indexFilepath, "w")

# atraves da funcao glob do modulo glob busca os nomes da imagens
for imagePath in glob.glob(args["images"] + "/*.jpg"):
    # extrai o numero da imagem
    ini = imagePath.rfind("/") + 1
    end = imagePath.rfind(".")
    imageID = imagePath[ini:end]
    # carrega a imagem em memoria
    image = cv2.imread(imagePath)

    # caso a imagem nao esteja vazia
    if image is not None:
        # aplica o descritor na imagem
        features = descriptor.describe(image)

        # escreve o vetor de caracterisicas no arquivo de indice (cada linha e' uma imagem)
        features = [str(f) for f in features]
        indexFile.write("%s, %s\n" % (imageID, ",".join(features)))

indexFile.close()

print "Indice gerado com sucesso!"

t2 = time.time()
print "Tempo: %.2f s" % (t2 - t1)