Пример #1
0
def index(Dataset):
    indexfile = 'index.csv'

    dataset = Dataset

    cd = descriptor((8, 12, 3))

    output = open(indexfile, "w")

    for imagePath in glob.glob(dataset + "*.jpg"):
        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)))

    for imagePath in glob.glob(dataset + "*.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()
def index(Dataset):
    indexfile='index.csv'

    dataset=Dataset

    cd=descriptor((8,12,3))

    output=open(indexfile,"w")


    for imagePath in glob.glob(dataset+"*.jpg"):
        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()
def matcher(Dataset,Query):
    dataset='uploads'

    query_image=Query
    
    index='index.csv'
    
    res=0
    res1=0

    cd=descriptor((8,12,3))

    query=cv2.imread(query_image)

    gray=cv2.cvtColor(query,cv2.COLOR_BGR2GRAY)
    cv2.imwrite('grey.jpg',gray)

    query_grey=cv2.imread('grey.jpg')


    features=cd.describe(query)

    features_grey=cd.describe(query_grey)

    searcher=Searcher(index)
    results=searcher.search(features)
    results_grey=searcher.search(features_grey)


    #cv2.imshow("Query",query)

    for (score,resultID) in results:
        result=cv2.imread(dataset+resultID)
        #m=match(query_image,dataset+resultID)
        #cv2.imshow("Result",result)
        print(resultID)
        if score < 7.95:
            print(score)
            t=math.floor(score)
            res=100-t
            print(100-t)
        else:
            print(score)
            t=math.floor(score)
            res=t
            print(t+t)
            #cv2.waitKey(0)


    print("---------------grey---------------")
    for (score,resultID) in results_grey:
        result=cv2.imread(dataset+resultID)
        #cv2.imshow("Result",result)
        print(resultID)
        if score < 7.95:
            print(score)
            t=math.floor(score)
            res1=100-t
            print(100-t)
        else:
            print(score)
            t=math.floor(score)
            res1=t
            print(t+t)
            #cv2.waitKey(0)
    return (res,res1) 
def matcher(Dataset, Query):
    dataset = 'uploads'

    query_image = Query

    index = 'index.csv'

    res = 0
    res1 = 0

    cd = descriptor((8, 12, 3))

    query = cv2.imread(query_image)

    gray = cv2.cvtColor(query, cv2.COLOR_BGR2GRAY)
    cv2.imwrite('grey.jpg', gray)

    query_grey = cv2.imread('grey.jpg')

    features = cd.describe(query)

    features_grey = cd.describe(query_grey)

    searcher = Searcher(index)
    results = searcher.search(features)
    results_grey = searcher.search(features_grey)

    #cv2.imshow("Query",query)

    for (score, resultID) in results:
        result = cv2.imread(dataset + resultID)
        #m=match(query_image,dataset+resultID)
        #cv2.imshow("Result",result)
        print(resultID)
        if score < 7.95:
            print(score)
            t = math.floor(score)
            res = 100 - t
            print(100 - t)
        else:
            print(score)
            t = math.floor(score)
            res = t
            print(t + t)
            #cv2.waitKey(0)

    print("---------------grey---------------")
    for (score, resultID) in results_grey:
        result = cv2.imread(dataset + resultID)
        #cv2.imshow("Result",result)
        print(resultID)
        if score < 7.95:
            print(score)
            t = math.floor(score)
            res1 = 100 - t
            print(100 - t)
        else:
            print(score)
            t = math.floor(score)
            res1 = t
            print(t + t)
            #cv2.waitKey(0)
    return (res, res1)