my_config.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import numpy as np
  2. def averagePooling(image, block_size):
  3. image_height, image_width = image.shape
  4. block_height, block_width = block_size
  5. num_blocks_height = image_height // block_height
  6. num_blocks_width = image_width // block_width
  7. averaged_image = np.zeros_like(image)
  8. for i in range(num_blocks_height):
  9. for j in range(num_blocks_width):
  10. row_start = i * block_height
  11. row_end = (i + 1) * block_height
  12. col_start = j * block_width
  13. col_end = (j + 1) * block_width
  14. block_mean = np.mean(image[row_start:row_end, col_start:col_end])
  15. averaged_image[row_start:row_end, col_start:col_end] = block_mean
  16. return averaged_image
  17. def maxPooling(image, block_size):
  18. image_height, image_width = image.shape
  19. block_height, block_width = block_size
  20. num_blocks_height = image_height // block_height
  21. num_blocks_width = image_width // block_width
  22. maxed_image = np.zeros_like(image)
  23. for i in range(num_blocks_height):
  24. for j in range(num_blocks_width):
  25. row_start = i * block_height
  26. row_end = (i + 1) * block_height
  27. col_start = j * block_width
  28. col_end = (j + 1) * block_width
  29. block_max = np.max(image[row_start:row_end, col_start:col_end])
  30. maxed_image[row_start:row_end, col_start:col_end] = block_max
  31. return maxed_image
  32. def xyOverlap(targetBoundingBox, otherBoundingBox):
  33. x_overlap = max(0, min(targetBoundingBox[0] + targetBoundingBox[2], otherBoundingBox[0] + otherBoundingBox[2]) - max(targetBoundingBox[0], otherBoundingBox[0]))
  34. y_overlap = max(0, min(targetBoundingBox[1] + targetBoundingBox[3], otherBoundingBox[1] + otherBoundingBox[3]) - max(targetBoundingBox[1], otherBoundingBox[1]))
  35. overlap_area = x_overlap * y_overlap
  36. target_area = targetBoundingBox[2] * targetBoundingBox[3]
  37. if (overlap_area / target_area) > 0.3:
  38. result = 1
  39. else:
  40. result = 0
  41. return result