Warning, always convert your colors to from sRGB to Linear RGB before doing any math on them, then convert them back to sRGB afterwards for displaying them.

sRGB is the familiar color space you all know and love, it's what your display uses, and it's what has those RGB numbers between 0 and 255. But it's not a linear color space.

First think of values as being between 0 and 1 instead of 0 and 255. To change sRGB to Linear, do X^2.2 (close to squaring the value). To change Linear back to sRGB, do X^(1/2.2) (close to a square root).

In Linear RGB, a value of 0.5 is halfway between black and white. You can put a stripe or checkerboard pattern next to the color value, and it will appear to be the same brightness. But in sRGB, a value of 0.5 is much darker. Linear RGB of 0.5 is roughly equivalent to sRGB of 0.73.

The actual method of conversion involves a complicated curve that isn't continuous, using X^2.2 is still an approximation.

Even better, convert to HSL or CieLAB. RGB is not at all how our eyes see things.

For the purpose of blurring, there's nothing wrong with linear RGB.

HSL has the angle discontinuity which is really annoying to deal with and sometimes even impossible to work around.

CIELAB should be fine in theory, but it's not what people actually use on their screens, so I've had some problems with it in practice.

CIEXYZ (CIE 1931) had the best brightness axis ever. But the hunt for the best color-axis seems to be ongoing. CIE 1960, CIE 1964, CIELAB/CIELUV 1976...

CIECAM02 CIECAM16 seem to be new iterations. Maybe those are good now?

When I was trying to find how close colors are to each other (such as when mapping an image to an existing palette), comparing color distance in YCbCr worked far better than comparing color distance in RGB.

For blending, linear RGB is a much better choice than HSL. In HSL, a slightly cool gray (230°, 5%, 50%) mixed with an intense warm yellow (40°, 100%, 50%) might create a hot pink (315°, 52.5%, 50%). Not what your eyes expect.

There are also color science packages like this one that let you do conversions to various spaces - https://www.colour-science.org/

Pretty flawed also really.

Basically, anyone that paints knows that the more colours are mixed, the more they tend to brown. Yet because of that misunderstanding in the 1960s in Caltech, in CS more colors = white.

Crazy stuff. A great example of technical debt in systems design where we have all this jazz like sRGB, HSL, HSV, etc, trying to reset that basic mistake in physics from 60 years ago.

When you start from a black screen (eg. a monitor) your primary colors that can form all others are literally red, green and blue. Those are the subpixels that every monitor must have as a minimum. These colors will add to white and mixtures of them can make every color humans can perceive (provided your rgb are at the maximum extremes of each color, otherwise your color triangle is slightly smaller than what rgb can actually do). This is called additive color mixing. Start from black and add color.

When you mix paints your are subtracting from white. The primary colors are 45degrees around the color wheel, namely cyan, magenta, yellow. From those you can make alm other colors by subtracting various amounts of the above three colors from white.

Btw do you know what color model matches your eyes the most? It’s additive color mixing. Your eyes literally start by seeing black and as your eyes let in light the cones and rods that are focused around detecting red, green and blue are triggered in various amounts and you see color that way. You don't see color the same way color is formed from mixing paints. You don’t see cyan, magenta, yellow at all. You see in RGB.

So your painting example is really flawed. Subtractive color models are inly useful for paints.

Displays are not made of paint, though - they use light.

There are two models of combination:

- subtractive, which applies to paint, since the more you mix in the more frequencies are absorbed

- additive, which applies to light, as mixing an extra light adds the frequencies in it

So additive, where more colour tends to white, is correct.

There's been no mistakes here. Additive mixing is the most intuitive way to represent color, just add primaries. Mixing paint is super complicated!

Additive vs substractive approach to color Displays use the former, so it is natural this is mirrored in software.

If you don't believe the people telling you about additive vs subtractive mixing, ask yourself this: How does a prism separate a rainbow of colors out of white sunlight? Shouldn't the sunlight be brown for that to work?

> The actual method of conversion involves a complicated curve that isn't continuous

Isn't continuous? Really? That seems surprising to me; tell me more.

it's complicated for appropriate values of complicated.

more specifically it's defined piecewise and the standard then rounds some constants in the definition, which results in a slight discontinuity around the transition from one piece to the other.

https://en.wikipedia.org/wiki/SRGB#Deriving_the_transfer_fun...

A piecewise function is definitely not what I'd call "complicated".

It's an implementation detail. In theory, it should be continuous.

>First, the average pixel is not what I would expect it to be at all

It looks like the averaging was done in default sRGB color space, with:

magick "$f" -resize 1x1 txt:-

Downscaling should instead be done in a linear colorspace. Human vision is non-linear, but the filtering required for downscaling is equivalent to blurring, which is linear because it's done optically not within the retina or brain. Using ImageMagick:

magick "$f" -colorspace RGB -resize 1x1 -colorspace sRGB txt:-

Additionally, JPEG supports chroma subsampling, which is usually enabled by default. I don't know what sips does, but with these small files you might as well use PNG and avoid the risk of losing color information this way.

This should produce results closer to human perception.

I'm of the belief that fruit and vegetable packaging is often designed to hide defects, and to make it harder to visually discern how fresh the produce is (on top of not letting you touch it).

Some examples.

Red netting on oranges makes it hard to see imperfections on the skin. Green netting does the same for avocados. Costco sells corn in trays that are cling wrapped with a wrap that is unmistakably designed to hide the ends of the corn (the easiest way to discern if corn has gone bad). Other fruits, and veggies like melons, onions, and potatoes have similar netting with colors that seem to be carefully chosen to maximize visual clutter.

Why aren't all the nets the same color?

Costco sometimes sells pears in plastic trays with multiple creases that cause reflections that make it very difficult to see what the pears inside look like.

Supermarkets also sometimes play with the light around the vegetables. Some areas have so much red in the light that you better take the items to a different area to be able to see if they are yellow or orange.

>The average pixel was not what I expected.

The average pixel doesn't look correct because human vision does not interepret shadowed colors as different colors. We first guess at the shadows, and then do some kind of inverse mapping from the shaded color space to the illuminated one before we "perceive a color". This is why the black,blue/white,gold dress illusion exists.

It's kinda wild how much our brain just auto-corrects for lighting without us realizing it

Motion, too.

They really don’t look all that different to my untrained eye - in fact I think it looks “better” without the bag. Maybe I’m loco.

I'm in the same camp. It definitely doesn't look more orange to me. If anything, it looks more brown.

The unbagged oranges are more appealing.

Brown and orange are not different colors. For some illogical reason we prefer to think that they are: https://youtu.be/wh4aWZRtTwU

Please show me in ROYGBIV the location of "brown".

Sure, it's after red and before yellow.

https://www.quora.com/profile/Stephen-Westland

Taking another look, I think you're right! Particularly since the first orange is pretty orange already. I think the first example would have been better served with a yellower, less ripe orange to highlight the difference and the pull in the redder, riper direction from the bag.

Could it also be an "anti-marketing" bias?

We know that other people will not be truthful, misleading even.

We subconsciously know that the bag is orange to manipulate us.

Could it look better because you know it's truthful?

Colours are often very relative though. We usually don't see a single orange on a white background. I'm not sure that would be representitive of real oranges at the shopping mall.

Also that picture (both versions) are the brownish oranges i have ever seen in my life.

The bagged version feels like it's trying a little too hard

It makes sense that adding red adds red (in addition to the avocado sacks you mention, I think of lemons’ yellow bags, limes’ green bags, and the red packaging/shelf lining and pink-tinged light in the butcher’s case)—but those images really do look strangely exposed to me.

Did you do exercise any specific control over the phone’s camera?

I wonder if the ring light might use the sort of general-market LEDs that underperform specifically at illuminating saturated reds and oranges in this range… see for example

https://www.canada.ca/en/conservation-institute/services/con...

and

https://indiecinemaacademy.com/are-leds-ruining-your-project...

That's a good question, and I could easily see the camera settings (and the light) being a source of error here. Naively, I used the default iPhone camera with the same exposure for each one, then ended up manually removing some of the HDR settings from each one when they were showing up as way overexposed on my computer. Not exactly an advanced, scientific technique, and there was also a bright source of soft white light from the window next to the setup, which could have thrown off the automatic exposure.

Another comment mentioned it, but I wonder if the overall effect would be more visible with yellower baseline oranges (or, as you mention, pale lemons and limes). Really interesting about the LEDs underperforming as well!

Along those lines, one big thing I worried about when reading your article was whether the camera's auto-white-balancing might be throwing everything off. I'm not sure how it works on an iPhone, but I'd suspect that presence of the red bag might cause it to reduce the redness of the rest of the image. One easy solution might be to always have two oranges in each photo---one inside the bag, and one sitting on top.

This was my immediate thought when I saw the ring light. Very very likely a CRI of 90 or below, which doesn’t even weight much in red shades. Not uncommon to see 92 CRI with a R9 (red) score below 50% of sunlight or tungsten illumination.

This is one of those things I knew on some subconscious level but never really thought about until now. Of course the red mesh makes them look more orange - it's basically grocery store color grading. Honestly kinda love how simple the trick is. No fancy tech, no marketing wizardry - just "put red stuff over orange stuff, profit." Makes me wonder what other dumb little visual hacks are happening around me that I'm not noticing at all.

I need to look at all the nets and see what colors they are I think. Lemons, advocados etc there are probably more in the same class of trickery.

Maybe tomatoes are in boxes that make them look more red? Who knows. I am looking forward to the next super market visit.

> Makes me wonder what other dumb little visual hacks are happening around me that I'm not noticing at all.

If it's marketing, all of it. Movies as well.

Am i mossing something or is this really a blog post saying that if you put something red in a picture and compare it to the same thing without red, then the picture with more red, looks, well, more red?

If you put an object of color X of intensityn N in a net with color X of intensity N+M, then the object will get some spill over from the net similar to M, which the brain/person doesn't necessarily realise and simply assigns it to the object ad well.

It is also a consumer advice about not comparing an orange inside a bag (of any color) with one outside of one as we have a hard time truly comparing them.

It's like science fair energy for adults: "Ok but how much more red, exactly?"

I just don’t see the effect. Especialy with the picture on the top, the fruit with or without the net looks the same colour to me.

Just an FYI, those aren’t oranges.

They are SUMOs which belong to the Dekopon crop type.

Thanks for clarifying, I was about to ask what kind of oranges those are supposed to be...

Something is off with those first two pics. The orange already looks red, not orange — with or without the bag.

If you look at the pic below where it shows the oranges in the store, they’re much oranger.

For a post about color accuracy, it seems odd the comparison pics seem to have some color imbalance to them.

The best oranges [0] I've had were half green. Fresh from the tree, but still plenty ripe.

It's my understanding that oranges for transport to colder countries are picked unripe and ripened in the holds of cargo ships. This ripening process is great at making the skin more orange, and OK at improving the flavour, but nowhere near as good for that as ripening on the tree.

So if I saw green patches on my supermarket oranges, far from the tropics, I'd be conditioned to expect them to be really good. They wouldn't be, of course.

[0] Satsumas? Clementines? I don't want to get into a debate about what taxonomically is an orange, but these were citrus fruit that turn orange in colour when ripe.

How green an orange is when ripe has to do with the climate they are grown in. In warm climates with little variation in temperature between day or night, oranges will remain green on the tree even when ripe. If nights get cold enough (~55 F), they will turn orange.

That said, in the US, oranges destined for markets de-greened for aesthetic purposes since customers won't generally buy them otherwise.

"How green an orange is when ripe has to do with the climate they are grown in."

Not true for all cultivars. For example, the emerald orange rind always looks like a lime.

I'm not familiar with that one and can't seem to find it online. Do you have a link?

Limes will actually turn yellow when ripe. We just pick them early.

https://i.imgur.com/gX7RCKs.jpeg

Sometimes they'll go orange in the rind but most times they stay green like a lime.

Those look like calamondins (Calamansi limes).

Just like with oranges, their skin will remain green or mostly green unless grown where it gets cold enough, then their skin will turn yellow then orange then reddish orange. Where I live, calamondins trees have entirely orange fruit when ripe.

They look like them but taste much closer to a mandarin!

Oranges and other citrus are examples of non-climacteric fruits, meaning they do not continue to ripen after being picked. So, they have to be picked at the desired level of ripeness.

The best-tasting oranges looked nothing like the perfectly polished, all-orange supermarket ones. Some of them were downright ugly by grocery store standards

Some oranges, especially the ones you find in Asia or at Asian fruit stands, can be completely ripe and still completely green. The ones sold in US stores are almost all sour and unripe if they are green (almost always but not always). Different regions in the world 'know about' different citrus fruit (there seem to be a lot of overlap and a lot of non-overlap with fruit), so your mileage may vary. Reddit claims this is because of the temperatures: https://www.reddit.com/r/VietNam/comments/16ca895/why_are_th... It's fun to go to fruit stands when traveling and try the fruits you don't recognize! Lots of fruits are very different if you travel to countries where they can grow them natively, and there are a lot of tropical fruits that aren't exported. Lots of the English words for fruits are re-used so you can be eating something totally unrecognized and it's a "tree cherry" or something.

For example, what they call a lime in a lot of countries (for example Calamansi) would be called a tiny orange in North America (we don't have that fruit here). What we call a lime they wouldn't recognize, but if they saw/tasted it they might think it's a green lemon or something.

> For example, what they call a lime in a lot of countries (for example Calamansi) would be called a tiny orange in North America (we don't have that fruit here).

Calamansi limes are grown in California and usually called Calamondin limes. They're typically anywhere from orange to yellow/green when grown here.

> What we call a lime they wouldn't recognize, but if they saw/tasted it they might think it's a green lemon or something.

What country doesn't have what we call a lime? The Key lime, like the Calamansi is is native to the Philippines and available everywhere the Calamansi is. Persian limes are exported nearly everywhere.

Lots of languages don't differentiate between lemons and limes though.

> Maybe the secret is to never buy bagged fruit, since it’s harder to evaluate the quality of each orange.

There's already so much food waste due to safe but blemished produce though!

I think the author is on the right track just needs to refine the assumptions a bit. Not sure if the method actually tests whether we perceive the oranges as more orange with red bags. Things like too small of a sample size, lack of any statistical analysis, uncontrolled lighting conditions, not controlling for phone camera, and simplistic color analysis (human eye is much more complex). Also lack of applicability to color science principles

Don't let perfect be the enemy of fun

Funny experiment however you can change outcome of it just by changing white balance on the camera. I'm not sure if the creator is aware of that the camera in his phone is always choosing the white balance, and that he should setup manual mode and have constant light source for this to compare.

I think the lighting/camera work doesn't help here. The first photo of the orange...doesn't look orange. It's really dark. In the photo from the shop they look orange.

My first thought as well. The author probably has a monitor with not very accurate color, those look almost red.

Same here, most of the pictures look really dark and not orange at all.

The blue labels in the bags probably make the oranges pop more being a complementary color.

https://en.wikipedia.org/wiki/Complementary_colors

OT Q: What are the mesh bags made of? They always leave a detritus of orange (citrus) or green (avocados) on the counter; we're definitely ingesting this stuff.

Glad I’m not the only person stood there focusing intently over my spectacles on orange skin looking for defects through the red plastic netting.

I'd like to bag my oranges in bags that make them look less orange. I can't stand orange recently.

In response to the observation the average pixel color is surprisingly brown, I'll take today's opportunity to induct some of my fellow HNers into today's lucky 10,000 by linking Technology Connections's "Color is weird" video (https://www.youtube.com/watch?v=wh4aWZRtTwU).

Thank you for the video, that was really interesting. I had no idea that brown was orange, and that makes me wonder how those darker colors are perceived by people with many more categories of colors in their minds. If simply naming brown makes it seem like a unique color, I imagine the abrupt switchover that I experienced watching that video would happen for more color-discerning people as well when they see "Dark Blue" or "Dark Purple" or "Dark Red".

Or... maybe you have be both discerning and naive in regards to it for the illusion to work.

[deleted]

Oranges in Orange Bags == Rotten Oranges, in my experience. Do Not Buy.

Wait, is that "local grocery store" selling those oranges for $2.49 _each_?!

Not a typical orange. “Sumo Citrus” / dekopon / shiranui is a hybrid tangor/tangerine cross. Very fragile, specialty fruit, only recently available at scale in the eastern US. This is on the high end per-fruit but I’ve seen higher. I usually buy in cases at ~$1.25 per fruit.

Wow indeed. Though I think the 4.99 ones are by weight, for 2 lbs? Seems weird though so I'm not sure.

[dead]

I like the energy of the post a lot! Nice job.

The oranges he used were very ripe. Lately small oranges like tangerines have been very ripe for me. Sometimes when they are out of season they are borderline green, or actually have visible green on them, or are basically yellow. When they are so unripe, the red/orange bag makes a HUGE difference in how they look, it's night and day.

those are some weird oranges

Dekupon oranges (branded Sumo in the US)! They’re my favorite. Just the right amount of sweet, and the easiest to peel I’ve ever had.

https://en.m.wikipedia.org/wiki/Dekopon

That's because it's not: it's a mandarin-orange hybrid.

Fun fact: "dekopon" means basically "outie" (as in protruding navel, not Severance).

I’ve a few time now had to explain to older people that “no, it’s not the same things you had when you were a kid” about a few different foods.

Oranges, avocados, Brussels sprouts, and more I am forgetting. I’m receive basically the same “oh it’s the same thing!”.

/jk

They are just excited to see you, too.

This is interesting because it shows us how a programmer thinks of a problem vs. how a psychologist or neuroscientist would think of this problem and highlights the lack of "human-ness" in programmer thinking.

I'm no fan of schools forcing STEM students to study boring electives but this is a prime example of why that might be useful.

The entire premise of the post is wrong - average pixel value has nothing to do with how orange the oranges look - it's all about perception.

Here's an example where the same exact color (pixel value) can be perceived as either light or dark depending on the context: http://brainden.com/images/identical-colors-big.jpg

That's what the bag adds - context - but the author hasn't made this connection.

You saw someone making a bunch of observations, setting up an experiment and trying to use maths/programming to prove an hypothesis they believed to be a sign of "lack of human-ness"?

To me it showed curiosity and ingenuity, sure they might not have studied a certain subject but it is a totally valid approach to an unknown problem. It might actually get people who have similar "silly questions" to run a similar set of experiment and perhaps stumble upon something novel.

You comment showed less human-ness than OP, ironically.

I read the lack of human-ness as locking at the wrong place.

It’s not reality that changed because of red net but our perception of it.

The solution isn’t in the oranges but our brain

Agreed.

While you are correct about color perception, I don't see the link to a 'lack of humanness in programmer thinking'. It's not an inherent trait to software engineers. The entire field of HCI, interaction design and everything around how we deal with digital colors are fully focused on the human experience.

Maybe a reminder that computer science != programming.

Context absolutely affects how we see things.

But so does its colour.

So observing how a red mesh affects that colour is absolutely worth investigating.

See Josef Albers’ Interaction of Color or the recent and more approachable Interacting With Color.

It's not a "programmer" problem. Any competent program I know would never thing of averaging the color of the orange with the color of the non-orabge bag, and expect that to be orange, or representative of how we percieve the orange.

You clearly have some interesting and substantive points to make! but on HN, can you please do this without putting down others or their work?

It's all too easy to come across as supercilious and I'm afraid you crossed the line, no doubt inadvertently.

https://news.ycombinator.com/newsguidelines.html

See also this popular “optical illusion”: https://en.wikipedia.org/wiki/Checker_shadow_illusion

[dead]

I mostly remember which stores sold me stuff that turned out to be better when I ate it. These days, that's often produce that looks not-so-great.

I don't think averaging the color over the whole image is the right way to do this. When you buy bagged oranges you pick up a bag and look at it close, not squint at it from a distance.

I mean… the first orange basically looks red on my monitor.

I am glad to see we are finally hitting on the real questions everybody has been asking!

Brown is dark orange, cmv.

Well that's pretty much a fact, so why exactly do you want someone to change your view?

[deleted]

That’s like saying green is a yellower blue. It’s all arbitrary.

[deleted]

The names are arbitrary but the underlying color theory is not. Colors are different wavelengths of light and our eyes have sensors that are sensitive to specific wavelengths.

Most colors are mixtures of wavelengths of light. Our eyes have sensors that are sensitive to specific ranges of wavelengths, with relatively broad overlapping response curves. Orange can refer to a spectral color, but (as you say) the arbitrary nature of the names means it also refers to several mixtures of spectral colors of varying wavelength and intensity. "Brown" doesn't refer to any spectral color, it's always a mixture which could be referred to as a "dark orange".

This is not at all how we perceive color.