Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix blurs #2166

Merged
merged 2 commits into from
Nov 21, 2024
Merged

Fix blurs #2166

merged 2 commits into from
Nov 21, 2024

Conversation

ternaus
Copy link
Collaborator

@ternaus ternaus commented Nov 21, 2024

Fixes: #2165

Summary by Sourcery

Fix the issue with median blur kernel size validation for float32 images and introduce a utility function to sample odd numbers from a range. Add tests for the new utility function to ensure its correctness.

Bug Fixes:

  • Fix the issue with invalid kernel size values in median blur for float32 images by removing the restriction on kernel size.

Enhancements:

  • Introduce a utility function 'sample_odd_from_range' to sample odd numbers from a specified range, ensuring valid odd numbers are selected.

Tests:

  • Add tests for the 'sample_odd_from_range' function to ensure it correctly samples odd numbers from a given range.

Copy link
Contributor

sourcery-ai bot commented Nov 21, 2024

Reviewer's Guide by Sourcery

This PR fixes blur-related functionality by introducing a new utility function for sampling odd numbers and applying it consistently across different blur transforms. It also adds uint8_io decoration to median_blur and removes a float32-specific restriction.

Sequence diagram for applying blur with sampled odd kernel size

sequenceDiagram
    participant User
    participant BlurTransform
    participant fblur
    User->>BlurTransform: apply(img, kernel, params)
    BlurTransform->>fblur: sample_odd_from_range(py_random, blur_limit[0], blur_limit[1])
    fblur-->>BlurTransform: odd kernel size
    BlurTransform-->>User: blurred image
Loading

Class diagram for updated blur functions

classDiagram
    class BlurFunctions {
        +median_blur(img: np.ndarray, ksize: int) np.ndarray
        +sample_odd_from_range(random_state: Random, low: int, high: int) int
    }
    note for median_blur "Added uint8_io decorator and removed float32-specific restriction"
    note for sample_odd_from_range "New utility function for sampling odd numbers"
Loading

File-Level Changes

Change Details Files
Added a new utility function for sampling odd numbers from a range
  • Implemented sample_odd_from_range function to handle odd number sampling
  • Added comprehensive test cases for the new function
  • Function normalizes input values to ensure valid odd numbers >= 3
albumentations/augmentations/blur/functional.py
tests/functional/test_blur.py
Refactored blur transforms to use the new sampling function
  • Updated Blur transform to use sample_odd_from_range
  • Modified MotionBlur to use sample_odd_from_range
  • Updated GaussianBlur to use sample_odd_from_range
  • Changed GlassBlur to use sample_odd_from_range
albumentations/augmentations/blur/transforms.py
Modified median blur implementation
  • Added uint8_io decorator to median_blur function
  • Removed float32-specific ksize restriction
albumentations/augmentations/blur/functional.py

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time. You can also use
    this command to specify where the summary should be inserted.

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link
Contributor

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @ternaus - I've reviewed your changes and they look great!

Here's what I looked at during the review
  • 🟢 General issues: all looks good
  • 🟢 Security: all looks good
  • 🟡 Testing: 2 issues found
  • 🟢 Complexity: all looks good
  • 🟢 Documentation: all looks good

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

tests/functional/test_blur.py Show resolved Hide resolved
tests/functional/test_blur.py Show resolved Hide resolved
tests/functional/test_blur.py Show resolved Hide resolved
Copy link

codecov bot commented Nov 21, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 89.76%. Comparing base (b1a79c2) to head (07aa3ce).
Report is 295 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##           main    #2166       +/-   ##
=========================================
+ Coverage      0   89.76%   +89.76%     
=========================================
  Files         0       47       +47     
  Lines         0     8477     +8477     
=========================================
+ Hits          0     7609     +7609     
- Misses        0      868      +868     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.


🚨 Try these New Features:

@ternaus ternaus merged commit c6d4a4d into main Nov 21, 2024
16 checks passed
@ternaus ternaus deleted the fix_blurs branch November 21, 2024 20:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

MotionBlur blur_limit tuple doesn't work properly
1 participant