-
Nov 27th, 2021, 11:59 PM
#1
-
Nov 28th, 2021, 01:40 AM
#2
Re: (VB6) Get the main or prevalent color tone of a picture
-
Nov 28th, 2021, 04:22 AM
#3
Re: (VB6) Get the main or prevalent color tone of a picture
-
Nov 28th, 2021, 04:53 AM
#4
Re: (VB6) Get the main or prevalent color tone of a picture
Updated. I added another function IsDarkColor to be able to easily choose the ForeColor according the the BackColor.
-
Nov 28th, 2021, 08:20 AM
#5
Fanatic Member
Re: (VB6) Get the main or prevalent color tone of a picture
good idea.I think it can be used to identify image similarity.
-
Nov 28th, 2021, 03:02 PM
#6
Re: (VB6) Get the main or prevalent color tone of a picture
What is the "main" color? It can't be the average color based on just looking at those samples.
"Most common color" (histogram) gets dicey when JPEGs and photos in general are used.
I'm not sure "dark color" tests help much. What if the BackColor is something close to &H00808080 gray?
-
Nov 28th, 2021, 05:32 PM
#7
Re: (VB6) Get the main or prevalent color tone of a picture
Originally Posted by dilettante
What is the "main" color? It can't be the average color based on just looking at those samples.
I'll try to explain the algorithm simply:
If the image is too large, reduce it.
Scan all pixels and convert them to HLS colors.
(HLS consist on three values for each pixel. All three go from 0 to 239. H is Hue, S is Saturation and L is Luminance or Lightness).
There is a vector of 240 variables, each one for each Hue.
Sum a value to the corresponding variable in the vector every time the corresponding Hue appear in the image. It is not just +1, but a value that takes into account the saturation and the Luminance of the pixel color also.
Then we have the color spectrum of 240 tones (Hue), with the values for each one.
But there is also another array, of 6 color zones.
In this array this 240 colors are grouped into 6 "zones". The first zone is from 0-39 Hue values, from 40 to 79 zone 2, from 80 to 119 zone 3, etc.
We first look what zone has more values, and as a second refinement we look what color tone in that zone has most value.
Why first to find the zone and secondly the exact color?
Suppose that one particular color, for example a yellow is the one that has more pixels, but between the range of blues we have more in total the image, but individually none of the blues surpass this only one yellow. We want a blue as the resulting main color, not the yellow. That's the idea.
Where did I get this from? From nowhere. I don't know if it is the best method, but it seems to work. This is not for NASA.
Originally Posted by dilettante
"Most common color" (histogram) gets dicey when JPEGs and photos in general are used.
I'm not sure "dark color" tests help much. What if the BackColor is something close to &H00808080 gray?
As explained above, grays won't be taken into account. A few colored pixels in a black and white image could set the main tone.
I didn't test it much, it worked with many images that it tested but it needs more testing.
Last edited by Eduardo-; Nov 28th, 2021 at 09:37 PM.
-
Nov 28th, 2021, 06:02 PM
#8
Re: (VB6) Get the main or prevalent color tone of a picture
Originally Posted by xxdoc123
good idea.I think it can be used to identify image similarity.
Humm, I don't think it could be used to find similar images, that is interesting but entirely something different, and certainly much more complex.
I saw that there are programs that can find "same" images even when they are resized or have some minor differences, but I currently have no idea what kind of algorithm they use.
Well, that would be a matter of study.
https://medium.com/@gabriel_83172/ho...l-67f3c987b643
https://stackoverflow.com/questions/...similar-images
https://stackoverflow.com/questions/...ages-algorithm
https://stackoverflow.com/questions/...rom-a-database
Also face recognition would be interesting but it is hard to work on these fields if there is no money to support the projects.
Last edited by Eduardo-; Nov 28th, 2021 at 06:16 PM.
-
Nov 28th, 2021, 08:58 PM
#9
Re: (VB6) Get the main or prevalent color tone of a picture
It does seem to be effective.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|