我有一个长度为480000的字符串,它代表一个800x600的帧。 意思是600行和800列。我需要找到一个3X3的正方形,所有9个值都在特定范围内。我有自己的范围。并返回中间的索引。
这就是我现在正在做的事情:
# find 3x3 minValue < square < maxVlaue
for row in range(598):
for col in range(798):
if checkRow(frame,row,col,minValue,maxValue):
if checkRow(frame,row+1,col,minValue,maxValue):
if checkRow(frame,row+2,col,minValue,maxValue):
string = str(row+1),str(col+1)
print string
return
def checkRow(Frame,row,col,minValue,maxValue):
if (Frame[row*800+col])>minValue) and (Frame[row*800+col])<maxValue):
if (Frame[row*800+col+1])>minValue) and (Frame[row*800+col+1])<maxValue):
if (Frame[row*800+col+2])>minValue) and (Frame[row*800+col+2])<maxValue):
return True
return False
这样我检查每个“像素”,直到找到方块。
这个工作在python中有某种特殊功能吗? 或者更快更有效的算法?
我考虑过每2列检查一个像素并跳过2行。这样我就可以确保我不会错过3x3的方块,但是这样当我点击一个像素时,我需要检查9个不同的方块本身。所以我不确定会有多快。
感谢