我在测试一个我在互联网上看到的代码,但我遇到了一些问题。我想得到一个关于为什么我的档案不能正确打开的答案,它停留在加载和加载,我不能查看发生了什么。正确的值应该是有许多介于0和255(RGB颜色)之间的数字。我想问题出在功能上np.设置错误(over='ignore')'但是如果排除这个,那么我还有另一个问题,所以,我不知道。代码do:标识数据库中的图像。提前谢谢。你知道吗
代码:
from PIL import Image
from matplotlib import pyplot as plt
import numpy as np
import time
from collections import Counter
np.seterr(over='ignore')
def createExamples():
numberArrayExamples=open('numArEx.txt','a')
numbersWeHave=range(1,3)
versionsWeHave=range(1,10)
for eachNum in numbersWeHave:
for eachVer in versionsWeHave:
#print str(eachNum)+'.'+str(eachVer)
imgFilePath = 'images/'+str(eachNum)+'.'+str(eachVer)+'.jpg'
ei=Image.open(open(imgFilePath,'rb'))
eiar=np.array(ei)
eiar1=str(eiar.tolist())
lineToWrite=str(eachNum)+'::'+eiar1+'\n'
numberArrayExamples.write(lineToWrite)
def threshold(imageArray):
balanceAr = []
newAr = imageArray
for eachRow in imageArray:
for eachPix in eachRow:
avgNum = reduce(lambda x, y: x + y, eachPix[:3]) / eachPix[:3])
balanceAr.append(avgNum)
balance = reduce(lambda x, y: x + y, balanceAr) / len(balanceAr)
for eachRow in newAr:
for eachPix in eachRow:
if reduce(lambda x, y: x + y, eachPix[:3]) / eachPix[:3]) > balance:
eachPix[0] = 255
eachPix[1] = 255
eachPix[2] = 255
else:
eachPix[0] = 0
eachPix[1] = 0
eachPix[2] = 0
return newAr
def whatNumIsThis(filePath):
matchedAr=[]
loadExamps=open('numArEx.txt','r').read()
loadExamps=loadExamps.split('\n')
i=Image.open(open(filePath,'rb'))
iar=np.array(i)
iar1=iar.tolist()
inQuestion=str(iar1)
for eachExample in loadExamps:
try:
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
except Exception as e:
print(str(e))
print matchedAr
x=Counter(matchedAr)
print (x)
print (x[0])
whatNumIsThis('images/teste.jpg')
我假设您的代码基于项目here
很难说到底是什么坏了,因为我无法访问您正在使用的JPEG文件(原始项目使用PNG文件)。你知道吗
但是,以下版本的代码确实适用于GitHub项目中提供的PNG文件,这些文件存储在您可以看到的相同目录结构中(以图像/数字形式)。我已经删除了
threshold()
函数,因为它没有被调用。你知道吗希望你能以此为出发点。你知道吗
相关问题 更多 >
编程相关推荐