xu3kev commited on
Commit
300b021
1 Parent(s): 08e1ed6
Files changed (2) hide show
  1. app.py +1 -1
  2. myturtle_cv.py +25 -17
app.py CHANGED
@@ -340,7 +340,7 @@ def run(img_str):
340
  from concurrent.futures import ProcessPoolExecutor
341
  from concurrent.futures import as_completed
342
  gif_results = []
343
- with ProcessPoolExecutor() as executor:
344
  futures = [executor.submit(run_code, new_folder, i, code) for i, code in enumerate(codes)]
345
  for future in as_completed(futures):
346
  try:
 
340
  from concurrent.futures import ProcessPoolExecutor
341
  from concurrent.futures import as_completed
342
  gif_results = []
343
+ with ProcessPoolExecutor(max_workers=8) as executor:
344
  futures = [executor.submit(run_code, new_folder, i, code) for i, code in enumerate(codes)]
345
  for future in as_completed(futures):
346
  try:
myturtle_cv.py CHANGED
@@ -3,7 +3,7 @@ import cv2
3
 
4
 
5
  def crop_and_scaled_imgs(imgs):
6
- PAD = 10
7
  # use the last image to find the bounding box of the non-white area and the transformation parameters
8
  # and then apply the transformation to all images
9
 
@@ -18,34 +18,41 @@ def crop_and_scaled_imgs(imgs):
18
 
19
  # Get the bounding box of the non-zero pixels
20
  x, y, w, h = cv2.boundingRect(coords)
21
- x -= PAD
22
- y -= PAD
23
- w += 2 * PAD
24
- h += 2 * PAD
25
-
26
- # Calculate the position to center the ROI in the 256x256 image
27
- start_x = max(0, (256 - w) // 2)
28
- start_y = max(0, (256 - h) // 2)
29
-
30
- # Create a new 256x256 rgb images
31
- new_imgs = [np.ones((256, 256, 3), dtype=np.uint8) * 255 for _ in range(len(imgs))]
 
 
 
32
  for i in range(len(imgs)):
33
  # Extract the ROI (region of interest) of the non-white area
34
  roi = imgs[i][y:y+h, x:x+w]
35
  # If the ROI is larger than 256x256, resize it
36
 
37
- if w > 256 or h > 256:
38
- scale = min(256 / w, 256 / h)
39
  new_w = int(w * scale)
40
  new_h = int(h * scale)
41
  roi = cv2.resize(roi, (new_w, new_h), interpolation=cv2.INTER_AREA)
42
- w, h = new_w, new_h
 
 
 
 
43
 
44
  # new_imgs[i] = np.ones((256, 256), dtype=np.uint8) * 255
45
  # centered_img = np.ones((256, 256), dtype=np.uint8) * 255
46
 
47
  # Place the ROI in the centered position
48
- new_imgs[i][start_y:start_y+h, start_x:start_x+w] = roi
49
 
50
  return new_imgs
51
 
@@ -115,6 +122,7 @@ class Turtle:
115
  self.time_since_last_frame += abs(dist) / MOVE_SPEED
116
  # self.frames.append(self.canvas.copy())
117
  # self.save_frame_with_turtle()
 
118
 
119
  def save_frame_with_turtle(self):
120
  # save the current frame to frames buffer
@@ -365,7 +373,7 @@ if __name__ == "__main__":
365
  for i in range(7):
366
  with fork_state():
367
  for j in range(4):
368
- forward(2*i)
369
  left(90.0)
370
  return turtle.frames
371
 
 
3
 
4
 
5
  def crop_and_scaled_imgs(imgs):
6
+ PAD = 5
7
  # use the last image to find the bounding box of the non-white area and the transformation parameters
8
  # and then apply the transformation to all images
9
 
 
18
 
19
  # Get the bounding box of the non-zero pixels
20
  x, y, w, h = cv2.boundingRect(coords)
21
+ x = max(0, x-PAD)
22
+ y = max(0, y-PAD)
23
+ x_end = min(img.shape[1], x+w+2*PAD)
24
+ y_end = min(img.shape[0], y+h+2*PAD)
25
+ w = x_end - x
26
+ h = y_end - y
27
+
28
+ SIZE = 400
29
+ # Calculate the position to center the ROI in the SIZExSIZE image
30
+ start_x = max(0, (SIZE - w) // 2)
31
+ start_y = max(0, (SIZE - h) // 2)
32
+
33
+ # Create a new SIZExSIZE rgb images
34
+ new_imgs = [np.ones((SIZE, SIZE, 3), dtype=np.uint8) * 255 for _ in range(len(imgs))]
35
  for i in range(len(imgs)):
36
  # Extract the ROI (region of interest) of the non-white area
37
  roi = imgs[i][y:y+h, x:x+w]
38
  # If the ROI is larger than 256x256, resize it
39
 
40
+ if w > SIZE or h > SIZE:
41
+ scale = min(SIZE / w, SIZE / h)
42
  new_w = int(w * scale)
43
  new_h = int(h * scale)
44
  roi = cv2.resize(roi, (new_w, new_h), interpolation=cv2.INTER_AREA)
45
+ else:
46
+ new_w = w
47
+ new_h = h
48
+
49
+
50
 
51
  # new_imgs[i] = np.ones((256, 256), dtype=np.uint8) * 255
52
  # centered_img = np.ones((256, 256), dtype=np.uint8) * 255
53
 
54
  # Place the ROI in the centered position
55
+ new_imgs[i][start_y:start_y+new_h, start_x:start_x+new_w] = roi
56
 
57
  return new_imgs
58
 
 
122
  self.time_since_last_frame += abs(dist) / MOVE_SPEED
123
  # self.frames.append(self.canvas.copy())
124
  # self.save_frame_with_turtle()
125
+ # print(self.x, self.y)
126
 
127
  def save_frame_with_turtle(self):
128
  # save the current frame to frames buffer
 
373
  for i in range(7):
374
  with fork_state():
375
  for j in range(4):
376
+ forward(3*i)
377
  left(90.0)
378
  return turtle.frames
379