text: Title: Rotate bounding box with non-square image
  Body: ## Describe the bug
  
  When applying Rotate on a **non-square** image along with a bounding box, Albumentations return incorrect number of output bounding boxes.
  
  ### To Reproduce
  
  Steps to reproduce the behavior:
  
  1. Environment: Python 3.9.20, Albumentations 2.0.4 (latest)
  2. Sample code that produces the bug.
  
  ```
  import numpy as np
  import albumentations as A
  def test_random_rotate() -> None:
      image = np.ones((960, 640, 3))
      bboxes = [(80, 120, 560, 840, 1)]  # this box occupies the center area of 75% the image
      aug = A.Compose([A.Rotate(limit=(45,45), p=1.0, crop_border=True)], bbox_params={"format": "pascal_voc"})
      transformed = aug(image=image, bboxes=bboxes)
      assert len(bboxes) == len(transformed["bboxes"])
  test_random_rotate() 
  ```
  
  3. Any error messages or incorrect outputs: AssertionError. 
  ### Expected behavior
  The above code should pass assertion, i.e. only one box is produced, also the box must be correct. 
  
  ### Actual behavior
  
   `transformed['bboxes']` has 3 boxes, none of them are correct.
  
  ### Screenshots
  
  If applicable, add screenshots to help explain your problem.
  
  ![Image](https://github.com/user-attachments/assets/2155a906-db2d-4482-ac4f-651e64c6783d)
  
  ### Additional context
  
  Add any other context about the problem here, like links to similar issues or possible solutions you've found.
  