-
Notifications
You must be signed in to change notification settings - Fork 164
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
Adding histogram equalization for images #435
Conversation
Thank you for the PR and attempt to propose new feature. First, to save us all time and avoid nitpicking reviews (naming, formatting, whitespaces, style), Second, I'd strongly recommend you to read through review and comments posted to PR #430. This should give an idea how reviews run, what comments to expect. Third, as you can read in comments to PR #430, please be aware that for the competency test itself it is enough to present C++ code, but to get your feature accepted, it usually takes more effort (discussing design and interface choices, code comments, detailed tests, documentation, histogram operations may better fit general purpose part of GIL and not necessarily the Meanwhile, you could also offer some more details on what algorithm the PR proposes (any thing that can be named, referenced, etc.), updating PR description is fine. Code comments and documentation will come later if you decided to continue working on it. /cc @stefanseefeld |
Thanks @mloskot for the feedback . I will make the necessary changes according to the guidelines specified and will have a look at PR #430 .
I was of the same opinion , but a bit unsure of how to implement that. If I can get some further insights on this, so that my changes conform to Boost:gil design choices I would be glad to make those changes. |
For example, core histogram utilities could live in For example, if someone comes up with support for Boost.Histogram as output as well as input from/to GIL histogram utilities and algorithms, such features could be hosted in the extension. /cc @stefanseefeld may have some insights on the bigger picture of code structuring |
f9eeea4
to
59a92aa
Compare
One more thing to that note, I think it would be good to clarify (eventually in comments/docs) the definition of (in)dependent channels. For example, if it is equivalent to (or taken from) this one given in the RGB CHANNELS (IN)DEPENDENCE IN PHASE CONTRAST MICROPHOTOGRAPHY (alternative PDF), it may be worth to refer/cite that paper:
By the way, this also reminded me GIL-related question on StackOverflow, Histogram equalization upon RGB images? RGB ouput possible?, you may want to score some credits there :-) |
@mloskot |
I will have a detailed look at later this week or weekend. Meanwhile, as I explained in #430 (comment)
At this stage it's more important, I think, to gain basic experience about [Boost development[(https://www.boost.org/development/index.html) (right-hand side links), GIL itself and its development, Git & GitHub operations, and finally think about what you'd like to develop during GSoC (important for writing your proposal). |
Thanks @mloskot, I will do so right away. |
91c6a39
to
c1e15a3
Compare
Accidentally closed the PR by mistake, |
@codejaeger First, this PR is a competency test solution. If your project is accepted, you will have chance to work on it during GSoC and if not you will be welcome to continue working on it. |
c1e15a3
to
2b9034d
Compare
@codejaeger What are we going to do with this PR? Shall this be closed as replaced by the later PRs? |
Description
Histogram equalization is a contrast enhancement algorithm for images whose pixel intensities are concentrated in small regions.
Currently this implementation also supports histogram equalization for images with multiple channels under the assumption the input channels are independent. Images with dependent channels (like RGB) should be be converted to an (YCbCr for RGB) independent color space before using histogram equalization.
Motivation
This PR is proposed as a solution to the competency test for GSoC 2020. I chose histogram equalization though it was not in the proposed topics pages because if accepted it could be a starting step to implementing important image processing algorithms like CLAHE for cases where histogram equalization might not give good results.
References
Application of histogram equalization on some images - Github link
Tasklist