- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我是 Python 的新手,这是我编写脚本的第一件事,我只是想知道我能做些什么来删除这个警告:
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
我已经尝试用谷歌搜索答案,但就解决这个问题而言,我并没有明确的答案。
我正在尝试编写一个程序,该程序将从光标周围的矩形中获取的不断更新的图像与我正在搜索的引用图像进行比较。
然后根据光标相对于目标图像所处的区域,它会相应地进行调整。
感谢您提供的任何帮助!
-J
代码如下:
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
最佳答案
您将两个 uint8
值相加,得到一个 uint8
值。您需要在计算中转换数据类型。我建议你试试这个:
pixeldiff = (int(ipxeldiff)+int(currentdiff))/2
这应该有效。
编辑:平衡括号
关于python - 运行时警告 : overflow encountered in ubyte_scalars,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9384435/
我正在使用 bootstraptable 并试图让单元格显示溢出的内容但只显示向下(即 overflow-y)。问题是,bootstraptable css 使用 overflow: hidden o
来自文档:溢出: The overflow shorthand CSS property sets what to do when an element's content is too big to
有多个这样命名的问题,但我没有找到一个适用于我的情况,所以我在这里: 在这段代码中: #container:hover { overflow-x: hidden; } #container {
我正在学习 Haskell,但遇到了我没想到的异常“堆栈溢出”。 代码相当简单: type Reals = Double prod :: Reals -> Reals -> Reals prod a
我通读了this question并且没有看到我的问题是否有解决方案。 我创建了一个 CodePen这表明了这个问题。我希望隐藏红色边框左侧和右侧 (overflow-x) 的所有内容,但保持顶部和底
我有一张 bootstrap 4 卡,我想在其中隐藏字幕的溢出(并显示“...”)。我怎样才能实现这个目标?如果可能的话使用纯引导代码... Test object Added by
我今天更新了我的 flutter ,现在堆栈小部件中的溢出参数不再有效。 Flutter 1.22.0-10.0.pre.252 • channel master • https://github.c
使用 border-radius Opera 实际上不会隐藏元素的溢出部分。我已经尝试应用我设法在类似线程中找到的东西,例如定义边框样式或注意使用绝对和相对参数进行定位。但它仍然无法正常工作。 htm
我在固定大小的 div 中有一个表。如果表格溢出 div,我希望滚动条出现。我还想在向下滚动时克隆表格的标题,以便标题持久存在。我遇到的问题是我希望水平滚动条滚动克隆的标题和原始表格,而垂直滚动条
奇怪,我以为 overflow-x 和 overflow-y 都被广泛支持,但后来我才看到它只支持 CSS3( http://reference.sitepoint.com/css/overflow
unsigned long long terms; unsigned long long test; unsigned long long digit = 1; unsigned long long
我有一个案例,我必须使用 overflow-x:scroll; 水平显示内容。 现在在这个Fiddle第一个 block 有 overflow-y:scroll; 提供滚动,用户可以滚动内容。在第二个
您好,我正在尝试只使用 overflow-x 而不是 overflow-y 结构是这样的 Head1 feild1
我有一个正在运行的计划作业,我想计算过去 30 天的时间。为此,我收到一条警告,表示在表达式中检测到数字溢出。我怎样才能安全地给予 30 天? @Override @Scheduled(cro
我有一个父级,它有多个子级,当父级宽度溢出时,我喜欢显示水平滚动条。 我不想使用“display:inline-block”属性,因为它们之间会产生空白。 这是我的尝试: .parent{ wid
我正在为导航栏编写一些 CSS,我需要为下拉菜单使用 max-height 和 overflow-y: scroll 以便确保它适合页面。但是,每当我将 overflow-y 属性设置为滚动时,它似乎
这是我的问题。我有一个旋转木马,它也像菜单一样。当选项卡的数量高于浏览器可用的宽度空间时,将出现轮播控件。一切正常。但我还在每个选项卡上添加了一个下拉菜单,这就是问题所在。如果我设置 overflow
这个问题在这里已经有了答案: CSS overflow-x: visible; and overflow-y: hidden; causing scrollbar issue (10 个答案) 关
这个问题在这里已经有了答案: How do you keep parents of floated elements from collapsing? [duplicate] (15 个答案) W
这是一个代码片段: div.one { width: 98%; border: 5px solid black; overflow-x: visible; overflow-y: hi
我是一名优秀的程序员,十分优秀!