首页 > 解决方案 > 比较功能有问题,我认为它没有正确读取所有样本。有小费吗?

问题描述

我在图像识别方面非常菜鸟,但一直在关注 sendtex 的视频系列。该程序一直运行到视频 9/10,其中构建了一个函数来将样本图像与正在评估的图像进行比较。这是视频-> https://www.youtube.com/watch?v=ry9AzwTMwJQ

我认为问题可能出在“whatNumIsThis”函数中。我测试了视频中 15:53 显示的计数器工具,计数器工作正常。将变量“matchedAr”附加到变量“currentNum”可能是一个问题。或者该函数中的另一个变量有问题,我测试了其他函数,只是在每一步都打印结果并且它们工作正常。


def whatNumIsThis(filePath):
    matchedAr = []
    loadExamps = open('numArEx.txt','r').read()
    loadExamps = loadExamps.split('\n')

    i = Image.open(filePath)
    iar = np.array(i)
    iarl = iar.tolist()

    inQuestion = str(iarl)

    for eachExample in loadExamps:
        if len(eachExample) > 3:
            splitEx = eachExample.split('::')
            currentNum = splitEx[0]
            currentAr = splitEx[1]

            eachPixEx = currentAr.split('],')

            eachPixInQ = inQuestion.split('],')

            x = 0

            while x < len(eachPixEx):
                if eachPixEx[x] == eachPixInQ[x]:
                    matchedAr.append(int(currentNum))

                x += 1

    print (matchedAr)
    x = Counter(matchedAr)
    print (x)

没有错误消息,而是返回一个 1 的计数器,如下所示 -


[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
Counter({1: 100})

我检查了 numArEx.txt 文件,它包含所有应有的样本,而不仅仅是数字“1”的样本。我希望它返回所有可用数字实例的计数,而不仅仅是“1”。不知道该怎么办。

标签: pythonnumpycounterimage-recognition

解决方案


推荐阅读