I'm new to Python and this is my first ever thing I've scripted and I'm just wondering what I can do to remove this warning:
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
I've tried Googling the answer and nothing that was clear to me came up as far as fixing this.
I'm trying to write a program that will compare a continuously updating image that is taken from a rectangle around my cursor with a reference image that I'm searching for.
Then depending on what region the cursor is in relative to the target image, it will adjust accordingly.
Thank you for any help you can give!
-J
Code is below:
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
int()
there. It's already too late in thepixeldiff
line. – Spandex