Python FGO 脚本相关 (numpy + cv2)

numpy相关

  • zip(a, b) : 将俩长度相等的一维数组,挨个合并成tuple,返回类似tuple的一维数组(zip类型变量,只能for遍历)
  • [a if condition(x) else b for x in arr] : 对一维数组的元素挨个判断,返回结果为ab的一维数组
  • tuple元素前加星号,表示拆开的意思,用于将tuple拆成多个参数带入函数中(如print, swap
  • a为数组,则a[x:y:z]有点像[a[t] for t in range(x,y,z)]。若xy为负数,则转为len(a) + xlen(a) + yx,y,z任意一个可省略。

numpy库

  • 相关数组均为ndarray类型,能实现多种代码极其简化的操作
  • numpy的使用方法灵活多样,condition可以实现数组和数组,数组和元素的比较;同样名字的函数,根据参数数量不同可以有类型完全不同的的输出。了解numpy最好是对每个函数记住大概功能和常用的操作,而不过于追究其运行机制
  • condition : 可以是一维数组比变量,二维数组比一维数组(逐行对比),二维数组比二维数组etc。 Array([[1,2],[3,4]]) > 3结果是[[false,false],[false,true]]。总返回较大数组的真假结果。
  • condition的机制可应用于所有计算符号。比如a + 5或者a + [2,3]。前提是能够一一对应。
  • np.where(condition, x, y)若有xy,则将condition结果的真假换成xy。若只有condition,则返回坐标。格式tuple(ndarray(x0,x1,...,xn), ndarray(y0,y1,...,yn))。通常把结果用zip(*result)合并成正常格式。
  • if (condition).any() : 又一种特殊用法,不过作用很好猜。

cv2 库要用到的函数

  • im = imread(address, 0)address为图片文件路径,返回numpy二维数组
  • resIm = matchTemplate(startIm, templateIm, cv2.TM_CCOEFF_NORMED) :返回startImtemplateIm为模板的匹配二维数组,每个元素是以相应坐标为左上角的矩阵的重合率(0-1)

你可能感兴趣的:(python,编程)