ammariii08 commited on
Commit
6f52602
·
verified ·
1 Parent(s): 62105f2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -12
app.py CHANGED
@@ -349,7 +349,7 @@ def save_dxf_spline(inflated_contours, scaling_factor, height, finger_clearance=
349
 
350
  def add_rectangular_boundary(doc, polygons_inch, boundary_length, boundary_width, offset_unit, annotation_text="", image_height_in=None, image_width_in=None):
351
  msp = doc.modelspace()
352
- # Convert from mm if necessary.
353
  if offset_unit.lower() == "mm":
354
  if boundary_length < 50:
355
  boundary_length = boundary_length * 25.4
@@ -361,7 +361,7 @@ def add_rectangular_boundary(doc, polygons_inch, boundary_length, boundary_width
361
  boundary_length_in = boundary_length
362
  boundary_width_in = boundary_width
363
 
364
- # Compute bounding box of inner contours.
365
  min_x = float("inf")
366
  min_y = float("inf")
367
  max_x = -float("inf")
@@ -376,30 +376,30 @@ def add_rectangular_boundary(doc, polygons_inch, boundary_length, boundary_width
376
  print("No tool polygons found, skipping boundary.")
377
  return None
378
 
379
- # Compute inner bounding box dimensions.
380
  inner_width = max_x - min_x
381
  inner_length = max_y - min_y
382
 
383
- # Set clearance margins.
384
  clearance_side = 0.25 # left/right clearance
385
  clearance_tb = 0.25 # top/bottom clearance
386
  if annotation_text.strip():
387
  clearance_tb = 0.75
388
 
389
- # Check if the boundary dimensions are at least larger than the inner box plus clearance.
390
  if boundary_width_in <= inner_width + 2 * clearance_side or boundary_length_in <= inner_length + 2 * clearance_tb:
391
  raise BoundaryOverlapError("Error: The specified boundary dimensions are too small and overlap with the inner contours. Please provide larger values.")
392
 
393
- # Check if boundary exceeds image limits (for example, 1 inch less than the image dimensions).
394
  if image_height_in is not None and image_width_in is not None:
395
  if boundary_length_in > (image_height_in - 1) or boundary_width_in > (image_width_in - 1):
396
  raise BoundaryExceedsError("Error: The specified boundary dimensions exceed the allowed image dimensions. Please enter smaller values.")
397
 
398
- # Calculate the center of the inner contours.
399
  center_x = (min_x + max_x) / 2
400
  center_y = (min_y + max_y) / 2
401
 
402
- # Draw rectangle centered at (center_x, center_y).
403
  left = center_x - boundary_width_in / 2
404
  right = center_x + boundary_width_in / 2
405
  bottom = center_y - boundary_length_in / 2
@@ -445,7 +445,7 @@ def predict(
445
  annotation_text: str
446
  ):
447
  overall_start = time.time()
448
- # Convert image to NumPy array if needed.
449
  if isinstance(image, str):
450
  if os.path.exists(image):
451
  image = np.array(Image.open(image).convert("RGB"))
@@ -455,7 +455,7 @@ def predict(
455
  except Exception:
456
  raise ValueError("Invalid base64 image data")
457
 
458
- # Apply brightness and sharpness enhancement.
459
  if isinstance(image, np.ndarray):
460
  pil_image = Image.fromarray(image)
461
  enhanced_image = ImageEnhance.Sharpness(pil_image).enhance(0.5)
@@ -470,7 +470,7 @@ def predict(
470
  print("Drawer detection completed in {:.2f} seconds".format(time.time() - t))
471
  except DrawerNotDetectedError as e:
472
  return None, None, None, None, f"Error: {str(e)}"
473
- # Ensure that shrunked_img is defined only after successful detection.
474
  t = time.time()
475
  shrunked_img = make_square(shrink_bbox(drawer_img, 0.90))
476
  del drawer_img
@@ -492,7 +492,7 @@ def predict(
492
  # ---------------------
493
  t = time.time()
494
  reference_obj_img = make_square(reference_obj_img)
495
- reference_square_mask = remove_bg(reference_obj_img)
496
  print("Reference image processing completed in {:.2f} seconds".format(time.time() - t))
497
 
498
  t = time.time()
 
349
 
350
  def add_rectangular_boundary(doc, polygons_inch, boundary_length, boundary_width, offset_unit, annotation_text="", image_height_in=None, image_width_in=None):
351
  msp = doc.modelspace()
352
+ # Convert from mm if necessary
353
  if offset_unit.lower() == "mm":
354
  if boundary_length < 50:
355
  boundary_length = boundary_length * 25.4
 
361
  boundary_length_in = boundary_length
362
  boundary_width_in = boundary_width
363
 
364
+ # Compute bounding box of inner contours
365
  min_x = float("inf")
366
  min_y = float("inf")
367
  max_x = -float("inf")
 
376
  print("No tool polygons found, skipping boundary.")
377
  return None
378
 
379
+ # Compute inner bounding box dimensions
380
  inner_width = max_x - min_x
381
  inner_length = max_y - min_y
382
 
383
+ # Set clearance margins
384
  clearance_side = 0.25 # left/right clearance
385
  clearance_tb = 0.25 # top/bottom clearance
386
  if annotation_text.strip():
387
  clearance_tb = 0.75
388
 
389
+ # Check if boundary dimensions are at least larger than inner box plus clearance
390
  if boundary_width_in <= inner_width + 2 * clearance_side or boundary_length_in <= inner_length + 2 * clearance_tb:
391
  raise BoundaryOverlapError("Error: The specified boundary dimensions are too small and overlap with the inner contours. Please provide larger values.")
392
 
393
+ # Check if boundary exceeds image limits (1 inch less than image dimensions)
394
  if image_height_in is not None and image_width_in is not None:
395
  if boundary_length_in > (image_height_in - 1) or boundary_width_in > (image_width_in - 1):
396
  raise BoundaryExceedsError("Error: The specified boundary dimensions exceed the allowed image dimensions. Please enter smaller values.")
397
 
398
+ # Calculate center of inner contours
399
  center_x = (min_x + max_x) / 2
400
  center_y = (min_y + max_y) / 2
401
 
402
+ # Draw rectangle centered at (center_x, center_y)
403
  left = center_x - boundary_width_in / 2
404
  right = center_x + boundary_width_in / 2
405
  bottom = center_y - boundary_length_in / 2
 
445
  annotation_text: str
446
  ):
447
  overall_start = time.time()
448
+ # Convert image to NumPy array if needed
449
  if isinstance(image, str):
450
  if os.path.exists(image):
451
  image = np.array(Image.open(image).convert("RGB"))
 
455
  except Exception:
456
  raise ValueError("Invalid base64 image data")
457
 
458
+ # Apply brightness and sharpness enhancement
459
  if isinstance(image, np.ndarray):
460
  pil_image = Image.fromarray(image)
461
  enhanced_image = ImageEnhance.Sharpness(pil_image).enhance(0.5)
 
470
  print("Drawer detection completed in {:.2f} seconds".format(time.time() - t))
471
  except DrawerNotDetectedError as e:
472
  return None, None, None, None, f"Error: {str(e)}"
473
+ # Ensure that shrunked_img is defined only after successful detection
474
  t = time.time()
475
  shrunked_img = make_square(shrink_bbox(drawer_img, 0.90))
476
  del drawer_img
 
492
  # ---------------------
493
  t = time.time()
494
  reference_obj_img = make_square(reference_obj_img)
495
+ reference_square_mask = remove_bg_u2netp(reference_obj_img)
496
  print("Reference image processing completed in {:.2f} seconds".format(time.time() - t))
497
 
498
  t = time.time()