-
-
Notifications
You must be signed in to change notification settings - Fork 887
Implement AutoLevel processor - Attempt 2 #2235
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
Implement AutoLevel processor - Attempt 2 #2235
Conversation
|
@ynse01 Thanks for having a crack at this. The code looks great 👍 Do we have output references from ImageMagick we can compare our output with? |
Good point. Let me try and make an explicit Test for it. |
|
The |
|
I’ll have a look. It’s likely not us. ImagMagick seems to return different results on Mac |
|
I pulled down the artifacts from the build at the bottom of this page here and compared to a local test run on my Windows machine. (I need to dig my Mac out of a box as I moved out recently) https://github.com/SixLabors/ImageSharp/actions/runs/3117901063 Interestingly it appears that there is an issue but not with the Mac output. Look at the pixel comparison there. Mac CI - Left, Windows Local Right Reference Output - Left, Windows Local Right |
|
Thanks for the directions @JimBobSquarePants. |
JimBobSquarePants
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks great to me. Thanks!
Looking forward to a follow up PR to handle the bulk pixel bits.
I need to have a look at the other Histogram equalization methods tbh. As I recall they only work for grayscale images.


Prerequisites
Description
Implementation of #87
This PR can be interpreted as attempt 2 of the closed PR #1619. It tries to address the comments mentioned there. This processor ensures that the image remains RGB and no color distortion occurs.
Some design decisions (comments welcome):
Please comment if this is the correct functionality.
I'll address the bulk conversion To-do's in a later PR, as there are more (unrelated) classes that suffer from that issue.