|
|
|
@@ -1,6 +1,5 @@
|
|
|
|
import json
|
|
|
|
import json
|
|
|
|
import time
|
|
|
|
import time
|
|
|
|
import timeit
|
|
|
|
|
|
|
|
from pathlib import Path
|
|
|
|
from pathlib import Path
|
|
|
|
|
|
|
|
|
|
|
|
import cv2
|
|
|
|
import cv2
|
|
|
|
@@ -248,8 +247,22 @@ class DFWINDOW:
|
|
|
|
time.sleep(self.sleep_after_mouse)
|
|
|
|
time.sleep(self.sleep_after_mouse)
|
|
|
|
self.focusWindow()
|
|
|
|
self.focusWindow()
|
|
|
|
time.sleep(self.sleep_after_focus)
|
|
|
|
time.sleep(self.sleep_after_focus)
|
|
|
|
self.sendKeys("w", 30)
|
|
|
|
|
|
|
|
self.sendKeys("a", 30)
|
|
|
|
# Improved seeking upper left
|
|
|
|
|
|
|
|
self.sendKeys("w", 8)
|
|
|
|
|
|
|
|
img = self.capContent()
|
|
|
|
|
|
|
|
while not self.TOOLS.isTopBorder(img):
|
|
|
|
|
|
|
|
self.sendKeys("w", 4)
|
|
|
|
|
|
|
|
img = self.capContent()
|
|
|
|
|
|
|
|
self.sendKeys("w", 4)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.sendKeys("a", 8)
|
|
|
|
|
|
|
|
img = self.capContent()
|
|
|
|
|
|
|
|
while not self.TOOLS.isLeftBorder(img):
|
|
|
|
|
|
|
|
self.sendKeys("a", 4)
|
|
|
|
|
|
|
|
img = self.capContent()
|
|
|
|
|
|
|
|
self.sendKeys("a", 4)
|
|
|
|
|
|
|
|
|
|
|
|
img = self.capWindow()
|
|
|
|
img = self.capWindow()
|
|
|
|
self._content_left, self._content_top = self.TOOLS.find_content_origin(img)
|
|
|
|
self._content_left, self._content_top = self.TOOLS.find_content_origin(img)
|
|
|
|
self._content_right = int(img.shape[1] - self._content_left)
|
|
|
|
self._content_right = int(img.shape[1] - self._content_left)
|
|
|
|
@@ -369,7 +382,7 @@ class DFWINDOW:
|
|
|
|
self._map_height = (
|
|
|
|
self._map_height = (
|
|
|
|
(img.shape[0] - cal_top_border) # Grid x = 0
|
|
|
|
(img.shape[0] - cal_top_border) # Grid x = 0
|
|
|
|
+ ((self._gridy_max - 1) * self._step_size_y) # All the middle
|
|
|
|
+ ((self._gridy_max - 1) * self._step_size_y) # All the middle
|
|
|
|
+ cal_right_border # grid x = max
|
|
|
|
+ cal_bottom_border # grid x = max
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
self.setGridPos(0, 0)
|
|
|
|
self.setGridPos(0, 0)
|
|
|
|
@@ -382,31 +395,31 @@ class DFWINDOW:
|
|
|
|
|
|
|
|
|
|
|
|
def test1(self):
|
|
|
|
def test1(self):
|
|
|
|
# rawimg = cv2.imread("./test_img.png")
|
|
|
|
# rawimg = cv2.imread("./test_img.png")
|
|
|
|
rawimg = cv2.imread("grid_base_3.png")
|
|
|
|
# rawimg = cv2.imread("grid_base_3.png")
|
|
|
|
img = rawimg[100 : -self.bottom_to_ignore - 70, 65:-65]
|
|
|
|
# img = rawimg[100 : -self.bottom_to_ignore - 70, 65:-65]
|
|
|
|
tlb = self.TOOLS.firstNotBlackX(img)
|
|
|
|
# tlb = self.TOOLS.firstNotBlackX(img)
|
|
|
|
ttb = self.TOOLS.firstNotBlackY(img)
|
|
|
|
# ttb = self.TOOLS.firstNotBlackY(img)
|
|
|
|
|
|
|
|
|
|
|
|
tt_setup = (
|
|
|
|
# tt_setup = (
|
|
|
|
r"gc.enable() ; import cv2 ; import numpy as np ; timg = cv2.imread('./test_img.png', cv2.IMREAD_UNCHANGED)"
|
|
|
|
# r"gc.enable() ; import cv2 ; import numpy as np ; timg = cv2.imread('./test_img.png', cv2.IMREAD_UNCHANGED)"
|
|
|
|
)
|
|
|
|
# )
|
|
|
|
tt1 = timeit.Timer(
|
|
|
|
# tt1 = timeit.Timer(
|
|
|
|
"np.where(np.mean(cv2.cvtColor(timg, cv2.COLOR_BGR2GRAY), axis=0) > 15)[0][0]",
|
|
|
|
# "np.where(np.mean(cv2.cvtColor(timg, cv2.COLOR_BGR2GRAY), axis=0) > 15)[0][0]",
|
|
|
|
setup=tt_setup,
|
|
|
|
# setup=tt_setup,
|
|
|
|
)
|
|
|
|
# )
|
|
|
|
tt2 = timeit.Timer(
|
|
|
|
# tt2 = timeit.Timer(
|
|
|
|
"np.where(np.max(cv2.cvtColor(timg, cv2.COLOR_BGR2GRAY), axis=0) > 25)[0][0]",
|
|
|
|
# "np.where(np.max(cv2.cvtColor(timg, cv2.COLOR_BGR2GRAY), axis=0) > 25)[0][0]",
|
|
|
|
setup=tt_setup,
|
|
|
|
# setup=tt_setup,
|
|
|
|
)
|
|
|
|
# )
|
|
|
|
tt3 = timeit.Timer(
|
|
|
|
# tt3 = timeit.Timer(
|
|
|
|
"np.where(np.max(cv2.cvtColor(timg, cv2.COLOR_BGRA2GRAY), axis=0) > 25)[0][0]",
|
|
|
|
# "np.where(np.max(cv2.cvtColor(timg, cv2.COLOR_BGRA2GRAY), axis=0) > 25)[0][0]",
|
|
|
|
setup=tt_setup,
|
|
|
|
# setup=tt_setup,
|
|
|
|
)
|
|
|
|
# )
|
|
|
|
|
|
|
|
|
|
|
|
num_tests = 80
|
|
|
|
# num_tests = 80
|
|
|
|
r1 = tt1.timeit(number=num_tests)
|
|
|
|
# r1 = tt1.timeit(number=num_tests)
|
|
|
|
r2 = tt2.timeit(number=num_tests)
|
|
|
|
# r2 = tt2.timeit(number=num_tests)
|
|
|
|
r3 = tt3.timeit(number=num_tests)
|
|
|
|
# r3 = tt3.timeit(number=num_tests)
|
|
|
|
|
|
|
|
|
|
|
|
logger.debug("Pause here for testing")
|
|
|
|
logger.debug("Pause here for testing")
|
|
|
|
|
|
|
|
|
|
|
|
@@ -456,11 +469,6 @@ class DFWINDOW:
|
|
|
|
self._map_width = calib_info["map_width"]
|
|
|
|
self._map_width = calib_info["map_width"]
|
|
|
|
|
|
|
|
|
|
|
|
def getPanoramaMap(self):
|
|
|
|
def getPanoramaMap(self):
|
|
|
|
# self.test1()
|
|
|
|
|
|
|
|
# return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.calibrateGrid()
|
|
|
|
self.calibrateGrid()
|
|
|
|
# self.test_saveGrids()
|
|
|
|
|
|
|
|
# self.test_loadCalib()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return None
|
|
|
|
return None
|
|
|
|
|