RuntimeWarning: überlauf aufgetreten, die in ubyte_scalars

Ich bin neu in Python und dies ist meine erste Sache, die ich habe gescriptet und ich Frage mich nur, was ich tun kann, um diese zu entfernen Warnung:

Warning (from warnings module):
  File "C:\Users\Luri\Desktop\Bot Stuff\ImageSaver.py", line 76
    currentdiff=abs(anread[w,h])-abs(bnread[w,h])
RuntimeWarning: overflow encountered in ubyte_scalars

Ich habe versucht zu Googlen, die Antwort, und nichts, war für mich klar kam, soweit dies zu beheben.

Ich versuche, ein Programm zu schreiben, dass vergleichen wird eine ständige Aktualisierung image, das von einem Rechteck um meinen cursor mit einem Referenzbild, dass ich bin auf der Suche nach.

Dann je nachdem, in welcher region sich der cursor in Bezug auf das Ziel-Bild ist, wird es entsprechend anpassen.

Danke für jede Hilfe, die Sie geben können!

-J

Code ist unten:

import os
import sys
import time
import Image
import ImageGrab
import win32api
import numpy, scipy

def mousePos():
#---------------------------------------------------------
#User Settings:
  SaveDirectory=r'C:\Users\Luri\Desktop\Bot Stuff'
  ImageEditorPath=r'C:\WINDOWS\system32\mspaint.exe'
#Here is another example:
#ImageEditorPath=r'C:\Program Files\IrfanView\i_view32.exe'
#---------------------------------------------------------
  i,j = win32api.GetCursorPos()
  print 'Your Cusor Position is:', i,j
  time.sleep(1)
  size = 112, 58
#-------------------
#data is defined as | x0y0 = [0,0] = (xpos-56,ypos-29) | x0y1 = [0,1] = (xpos-56,ypos+29) | x1y1 = [1,1] = (xpos+56,ypos+29) | x1y0 = [1,0] = (xpos+56,ypos-29)
#Take In Image In Rectangle around cursor position to locate text of name
  pixeldiff=0
  currentdiff=0
  NQ1=193395
  NQ2=166330
  NQ3=171697
  NQ4=168734
  NAC=190253
  NBC=205430
  x0=i-56
  y0=j-29
  x1=i+56
  y1=j+29
  box=[x0, y0, x1, y1]
  img=ImageGrab.grab()
  saveas=os.path.join(SaveDirectory,'fullscreen.jpg')
  img.save(saveas)
  editorstring='""%s" "%s"'% (ImageEditorPath,saveas)
#Crop box around cursor
  cursorbox=img.crop(box)
  saveas=os.path.join(SaveDirectory,'cursorbox.jpg')
  cursorbox.save(saveas)
#Converts the given cursor rectangle to 8bit grayscale from RGB  
  out = cursorbox.convert("L")
  saveas=os.path.join(SaveDirectory,'lmodecurbox.jpg')
  out.save(saveas)
#Takes the converted grayscale picture and converts it to an array
  a=numpy.asarray(out)
  aarray=Image.fromarray(a)
  sizea = a.shape
#  print sizea
#  print a
  anread=a[:]
#Loads the reference image
  reference=Image.open("referencecold.png")
#Converts the given cursor rectangle to 8bit grayscale from RGB
  refout = reference.convert("L")
  saveas=os.path.join(SaveDirectory,'lmoderefbox.jpg')
  refout.save(saveas)
#Takes the converted grayscale picture and converts it to an array  
  b=numpy.asarray(refout)
  barray=Image.fromarray(b)
  sizeb = b.shape
#  print sizeb
#  print b
#  print size
  bnread=b[:]
#  print bnread
#Realized you can determine position based on this single quadrant
#Loop Quadrant 1 x0y1 to xmym
  for h in range(0,29):
    for w in range(0,55):
      #currentdiff=0
      currentdiff=abs(anread[w,h])-abs(bnread[w,h])
      pixeldiff=pixeldiff+currentdiff
#  print pixeldiff
#Test Above
  if pixeldiff<198559 and pixeldiff>190253:
  #Test Left
    if pixeldiff > 175000:
    #Move Above and Left
      print ('Go Up and Left')
    else:
    #Move Above Right
      print ('Go Up and Right')
  if pixeldiff>198559 and pixeldiff<205430:
    if pixeldiff < 185000:
    #Move Below and Left
      print ('Go Down and Left')
    else:
    #Move Below and Right
      print ('Go Down and Right')
"""
#Nominal Q1=193395 Variance low = 188408 Variance high = 203194
#Nominal Q2=166330 Variance low = 181116 Variance high = 199208
#Nominal Q3=171697 Variance low = 172279 Variance high = 201816
#Nominal Q4=168734 Variance low = 190644 Variance high = 191878
#Nominal Center = 198559
#Nominal Above Center = 190253
#Nominal Below Center = 205430
#Loop Quadrant 2 xmy1 to x1ym
  for h in range(0,29):
    for w in range(55,111):
      difference=abs(a(w,h)-b(w,h))
      currentdiff=abs(anread[w,h])-abs(bnread[w,h])
      pixeldiff=pixeldiff+currentdiff
#Loop Quadrant 3 x0ym to xmy0
  for h in range(29,57):
    for w in range(0,55):
      difference=abs(a(w,h)-b(w,h))
      currentdiff=abs(anread[w,h])-abs(bnread[w,h])
      pixeldiff=pixeldiff+currentdiff
#Loop Quadrant 4 xmym to x1y0
  for h in range(29,57):
    for w in range(55,111):
      difference=abs(a(w,h)-b(w,h))
      currentdiff=abs(anread[w,h])-abs(bnread[w,h])
      pixeldiff=pixeldiff+currentdiff
#Fine Nominal Values for Each quadrant pixeldiff
#Compare which is similar and then move cursor in center of that quadrant
"""

def main():
#  while True:
  mousePos()

if __name__ == "__main__":
  main()




#Compare image to constantly updating image of rectangle around cursor (maybe per second?) by searching for the quadrant with most similarity

#-------------------

#Based on comparison, move cursor to middle (x and y value) of matched quadrant by population of similar features and repeat
Schreibe einen Kommentar