I'm new to image processing, and I was given a task to separate the yellow (+ve values) and blue (-ve values) colors by a white edge from an image that contains only blue and yellow colors.
Unfortunately, I don't know how should I separate both colors.
Also, I cannot see any negative values in the pixels of the image which I got.
Unfortunately, I cannot use an advanced libraries such as OpenCv and most of the tutorials related to image processing on the Internet uses it.
I converted the image from RGB to Lab color space. I'm using Python for this and scikit-image library and other useful packages.
I'll be glad if anyone could help by giving me any hints!
Thanks

You need to find a colourspace where the yellows and the blues are well separated. Splitting the channels, and assigning them across the page, in
RGBcolourspace (with R on the left, G in the centre and B on the right):RGB without edge detection:
RGB with edge detection:
that's not very good - the brighter tones of yellow where the material is catching the light are being treated like edges.
Let's try
Labinstead ofRGBwithLon the left,ain the centre andbon the right:Lab without edge detection:
Lab with edge detection:
Still not so good. Now let's try
HSVcolourspace,Hon the left,Sin the centre andVon the right:HSV without edge detection:
HSV with edge detection:
And hopefully you can see that
Hon the left nails it. That's because yellow is 60 degrees and blue is 240 degrees in this diagram so your two colours are diametrically opposed - or whatever hexagons have in place of a circle's diameter.Then you need to do edge detection, and fattening, then you can composite the white edge over the top of the yellow and blue flag by choosing a "lighten" blend mode where you choose the lighter pixel at each location in the images so that the white edges filter through the blue and yellow.