Skip to content

Design and Implement a Crop Interface #7

@Pedrexus

Description

@Pedrexus

Description:

The library should allow users to crop videos, which means extracting a specific portion of the video frame while discarding the rest. We need to design and introduce a crop interface for this purpose.

Proposed Interface:

Crop Method:

def crop(self, left: int, upper: int, right: int, lower: int) -> Video:
    """
    Crop the video frame to the specified bounding box.

    Args:
    - left (int): The left pixel coordinate.
    - upper (int): The top pixel coordinate.
    - right (int): The right pixel coordinate.
    - lower (int): The bottom pixel coordinate.

    Returns:
    - Video: A new video object with the cropped frames.
    """

Usage Example:

cropped_video = video_instance.crop(50, 50, 450, 350)

Expected Outcome:

  • Users should be able to crop their videos to a specified bounding box using the crop method.
  • The cropped video should retain all properties of the original video, including frame rate, audio, etc., but with the new dimensions.

Additional Notes:

  • Error handling is essential. We should check if the given coordinates are valid and raise appropriate errors otherwise.
  • It might be helpful to allow users to specify the crop region in terms of percentage or actual pixel coordinates.
  • Ensure that cropping doesn't inadvertently affect the audio sync of the video.
  • Consider providing a preview feature so users can see the crop area before applying the operation.
  • base yourself on the torchvision crop

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions