Spaces:
Sleeping
Sleeping
File size: 1,814 Bytes
d5ac27c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
import cv2
import numpy as np
import gradio as gr
def rotate_image_90_left(image):
"""
Rotate image 90 degrees counter-clockwise (left)
Args:
image: Input image as numpy array
Returns:
Rotated image or None if input is None
"""
if image is None:
return None
try:
return cv2.rotate(image, cv2.ROTATE_90_COUNTERCLOCKWISE)
except Exception as e:
print(f"Error rotating image left: {e}")
return image
def rotate_image_90_right(image):
"""
Rotate image 90 degrees clockwise (right)
Args:
image: Input image as numpy array
Returns:
Rotated image or None if input is None
"""
if image is None:
return None
try:
return cv2.rotate(image, cv2.ROTATE_90_CLOCKWISE)
except Exception as e:
print(f"Error rotating image right: {e}")
return image
def rotate_image_180(image):
"""
Rotate image 180 degrees
Args:
image: Input image as numpy array
Returns:
Rotated image or None if input is None
"""
if image is None:
return None
try:
return cv2.rotate(image, cv2.ROTATE_180)
except Exception as e:
print(f"Error rotating image 180 degrees: {e}")
return image
def reset_image_to_original(current_image, original_image):
"""
Reset image to its original state
Args:
current_image: Current modified image (fallback if no original)
original_image: Original image to restore (Gradio State object)
Returns:
Original image if available, otherwise current image (may be None)
"""
if original_image is None:
return current_image
return original_image.value
|