Yesterday’s optical illusion: the hearts are the same color!

On yesterday’s Hili Dialogue, I posted this tweet, an optical illusion provided by Matthew:

The hearts are said to be the same color, with the illusion of their being different colors due to the different-colored stripes running through them. The was lots of argument among the readers, and, as far as I can remember, no consensus.

I put this question to Matthew (why do you readers make me do these things?), and he responded by checking. Here’s his response and his image. The conclusion is that the hearts are both the same color: a blue-tinted green.

They are the same colour. I have been in and checked the image, see here. The left half, with the orange, is from the ‘green’ heart. The right half, with the pink, is from the ‘blue’ heart.

Another response showing the color identity:

I think this settles it: if Matthew’s satisfied, so am I. However, if you can prove to Matthew’s satisfaction that they are really of different colors, you will win an autographed copy of his latest (and terrific) book: Life’s Greatest Secret, about the cracking of the genetic code. The first one to disprove color identity of the hearts will get the book. You can email me or put your “proof” in the comments.

Matthew sets out the rules:

People need to download the original large image (attached) and then enlarge it to show they are differerent colours. They won’t be able to do it.


  1. James Elton
    Posted February 17, 2018 at 7:51 am | Permalink

    The hearts are different colours.

    There are two worlds: A) zoomed in where identical hearts appear to go behind and in front of bars; and B) zoomed out where there are different coloured hearts. Both of these are merely appearances, so while it’s certainly an illusion, there is no reason to hold one perception over the other. And since the selection is arbitrary, I’m as entitled to select the world where the hearts are differently coloured as I am to select the world where the hearts are the same colour.

    Consider the Rubin Vase. Is it really faces or is it really a vase? You can justify either by changing your point of view. Similarly, whether you see hearts of the same or different colours is dependent on the point of view.

    The only different between the Rubin Vase and the hearts illusion is the type of intervention required. The hearts illusion requires a change in perspective that requires external magnification, while the Rubin Vase requires an intervention in selecting out what is the background and which the the figure. As much as there is no reason to privilege either foreground in the Rubin Vase, there is no reason to privilege either magnification in the hearts illusion.

    (my best shot at a free book)

    • Posted February 17, 2018 at 8:48 am | Permalink

      Sorry, that’s not gonna do. You KNOW what the question was about: it was about A. We say what you’re entitled to judge!

      No book for you. . . and no soup, either!


      • Craw
        Posted February 17, 2018 at 9:04 am | Permalink

        The question is about the bit pattern for the pixel color. The contention is the same bit pattern is found in all the “heart not stripe” pixels. But Barney’s cut and paste suggests it is not.

        • Craw
          Posted February 17, 2018 at 9:08 am | Permalink

          But Michael Fisher’s answers all doubt IMO — they are the same.

      • glen1davidson
        Posted February 17, 2018 at 10:35 am | Permalink

        It is about A, as explained eventually. What’s kind of annoying, though, is that the first thing you read is that the hearts are the same color, when they simply aren’t. The hearts aren’t just the colors “between the stripes,” the hearts are in fact composed of all of the stripes, of both colors of stripes, and because some of the stripes are quite differently colored you end up with very differently colored hearts.

        It’s rather startling that such a difference can be made in the colors of the hearts using the stripes, but then it apparently is explained because some stripes are yellowish and some are bluish. We see objects rather than stripes where we can, so we see the more yellowish hearts as green, the more bluish hearts as blue.

        So like I say, it’s a pretty cool effect, but it’s not an illusion that the hearts are different colors. The illusion is that the greenish-blue stripes are different colors, not that the hearts are.

        The hearts themselves are green and blue, because they’re composed of stripes of different colors. That’s the point about our visual system, that it’s hard to separately see the components of what we see as objects, which is why it’s so difficult to see the blue-green stripes as the same color in both.

        Glen Davidson

        • harrync
          Posted February 17, 2018 at 12:45 pm | Permalink

          Glen – Pretty much exactly what I was thinking.

        • Posted February 19, 2018 at 11:54 am | Permalink

          I’m a colour relationalist. On this view, strictly speaking, then, the hearts are not any colour, nor are the stripes.

          Instead, the combination of things (my visual system, the *pattern of* wavelengths emitted from my LCD monitor, my current background emotional state, etc.) results in “colour X”, including judgments like my willingness to say or write what X is.

    • eric
      Posted February 17, 2018 at 4:37 pm | Permalink

      B) zoomed out where there are different coloured hearts.

      A strained and acrobatic interpretation of a pretty simple question if I ever heard one. But good luck. 🙂

  2. BobTerrace
    Posted February 17, 2018 at 7:53 am | Permalink

    There are 4 lights! – Picard

  3. Christopher
    Posted February 17, 2018 at 7:57 am | Permalink

    Could this illusion work in reverse? Could different colors be placed similarly and appear to be the same shade?

    • Posted February 19, 2018 at 11:55 am | Permalink

      See my remark above. (Taken charitably, yes.)

  4. jaxkayaker
    Posted February 17, 2018 at 8:06 am | Permalink

    The post title says allusion, but should be illusion, presumably.

    • Posted February 17, 2018 at 8:48 am | Permalink

      Yes, a typo. Fixed, thanks.

    • gravelinspector-Aidan
      Posted February 17, 2018 at 10:14 am | Permalink

      What appears on the screen to say “allusion” is in fact an aural illusion.

      • jaxkayaker
        Posted February 17, 2018 at 1:26 pm | Permalink

        I would have made an allusion to Arrested Development and their jokes about allusion/ illusion, but I don’t think Jerry watches tv and it would have gone to waste.

        • gravelinspector-Aidan
          Posted February 18, 2018 at 1:47 pm | Permalink

          I count myself “woosh”-ed.

  5. Barney
    Posted February 17, 2018 at 8:09 am | Permalink

    So, I’ve copied the image in this post – width of 1000 pixels – into MS Paint, and cut a 4×4 section of one heart, and pasted it into another. The results is here:

    and it is clearly a different colour – even in the 2 pixel-wide stripe at the centre of the strip. Not by much, but it is different.

    • chrism
      Posted February 18, 2018 at 6:18 am | Permalink

      Agreed. Sampling the green blue strips of heart in Photoshop shows two similar but different colours.

  6. dph
    Posted February 17, 2018 at 8:23 am | Permalink

    Many of us see different colors, confirmed by graphics programs on exploded images. I wonder if there is some monitor/graphics card dependence?

  7. Posted February 17, 2018 at 8:29 am | Permalink

    In theory one could construct (say, in Photoshop) a blue-green heart with transparent strips. This layer could be dragged slightly left or right above a background layer that was only alternating orange and pink stripes. The heart would then appear to rapidly change colors. I would enjoy seeing this demonstrated.

    • gravelinspector-Aidan
      Posted February 17, 2018 at 10:22 am | Permalink

      To the best of my knowledge, Twitter does not accept upload of multi-layered images in whatever Photoshop’s proprietary file format is. They change it routinely, anyway – for revenue protection.
      Jerry has posted a JPEG, with their well known issues over compression artefacts. I don’t know how the original illusion was presented, but having spent years fighting exactly this over mixing line art with full colour images of microfossils, I’d be very careful about the data format if I were presenting such. I’ve fought that fight too often.

      • Posted February 17, 2018 at 12:29 pm | Permalink

        I would think one could make a video clip of their doing this and post it on Youtube.

        • gravelinspector-Aidan
          Posted February 18, 2018 at 1:46 pm | Permalink

          Yeah. But video technologies do even more horrible things with colour compression than JPEG does. That’s not road that would lead to high colour fidelity.
          Wasn’t an early nickname for the USian TV colour system, “Never Twice the Same Colour”, in reflection of the inaccuracy and instability of the colour rendition.

  8. Posted February 17, 2018 at 8:42 am | Permalink

    There are some differences in the image but I think that is mostly caused by the jpeg compression. I’m pretty sure if you did it in png you would get the effect without any mess. (Trying to force the image to only three colours was only partially successful for me.)

    In any case it’s possible to use the select by colour option in GIMP to select one heart and then invert selection and delete everything to see bars from all the hearts.

    They are all the same colour but if you want to show this sort of illusion you should use a lossless graphics format.

  9. Michael Fisher
    Posted February 17, 2018 at 9:03 am | Permalink

    13 heart

    • Craw
      Posted February 17, 2018 at 9:06 am | Permalink

      Now THAT is convincing.

    • Michael Fisher
      Posted February 17, 2018 at 9:16 am | Permalink

      WHAT I DID

      [1] Saved the full-sized image as a .png
      [2] Cropped to the top left heart & the one below it
      [3] Moved bottom heart up closer to the top heart
      [4] Chopped out a 5-pixel width vertical strip from the blue/green part of each heart [the black bits in the hearts are where they came from]
      [5] Moved the two strips to the right & up/down a bit onto the black background & put them edge-to-edge
      [6] INSIDE THE RED OVAL: The 10-pixel wide rectangle looks as shown when magnified [Far right] – I’ve left in the pixel grid so it’s clear that’s a 10-pixel wide image magnified.

      Colour is the same, but note there is a slight variation in both strips – but both strips vary within the SAME RANGE OF GREEN HUES

    • Michael Fisher
      Posted February 17, 2018 at 9:36 am | Permalink

      Program used is the FREE donation-ware Paint.NET for Windows only. Easier to use than The GIMP.

  10. Posted February 17, 2018 at 9:11 am | Permalink

    I see the point now. No book for me, unless I buy it. Which I should do anyway.

    • gravelinspector-Aidan
      Posted February 17, 2018 at 10:24 am | Permalink

      Yeah, I read it a couple of months ago. Interesting.

  11. Bruce Lyon
    Posted February 17, 2018 at 9:59 am | Permalink

    There is a bit of a semantic issue that should be clarified. When one zooms into the hearts, the central pixels in the green/blue hearts are the same or very similar, but as you move away from the center pixels, but still in the green/or blue areas, the pixels start to differ because they are blends of the colors. Put another way, the colors are a blend that transitions from the center of the heart to background color, at least on my monitor in my Photoshop program. If what I am seeing is correct then the question is a bit misleading because the color we see is due not just to the central pixels but the summation of all colors. And unless I have done something that altered the picture from the original I would say the answer is that the central portions of the hearts are the same but overall they are not the same. I would include the photos I produced (from cropping the original ) but I am not tech savvy enough to include photos with this comment.

    • infiniteimprobabilit
      Posted February 21, 2018 at 4:17 am | Permalink

      I agree. Not downloading anything, but just blowing the page up as far as it will go in my browser – the center of the ‘heart’ stripes is the same cyan colour for each heart. But, there is an area of blending between that and the ‘through’ stripes, and – as between the cyan ‘heart’ and the magenta background stripes – this includes and area of strong blue. The eye then ‘averages’ all this out over the area of the heart to produce a light blue.

      The same process occurs in the ‘green’ hearts, with the eye averaging out the colours to give the yellowish-green colour.


  12. Posted February 17, 2018 at 10:00 am | Permalink

    Note: we have a winner, as Matthew has accepted an early-morning emailed argument that convinced him that there is indeed a compression artifact that contributes to the illusion. The discussion can remain open, but the contest is over, and some clever reader is getting a book from Dr. Cobb.

    • rickflick
      Posted February 17, 2018 at 10:41 am | Permalink

      But, a compression artifact should not be a valid illusion should it? Hmmmm…I’ll have to gaze at it a bit more.

    • infiniteimprobabilit
      Posted February 21, 2018 at 4:29 am | Permalink

      That argument is technically right but not the whole story.

      That is, the compression artifact – the blending of colours between adjacent stripes – does contribute to the illusion (seen most when blowing up the ‘blue’ hearts, there’s a fringe of strong blue between the cyan heart stripes and magenta background stripes).

      But, the illusion would still persist even if the lines were clean and sharp-edged, since the eye performs its own blending – most notably in viewing this page as off-white when (on a computer) it’s composed of red, green and blue pixels.


  13. Dave
    Posted February 17, 2018 at 10:18 am | Permalink

    Using a color picker on the image also reveals the difference in RGB colorspace

    The green heart strips are
    R:10, G:254, B:151

    The blue heart stripes are:
    R:0, G:255, B:138

    Close, but different.

  14. Sevendy
    Posted February 17, 2018 at 10:42 am | Permalink

    Try opening it with an image processing app like the above-disparaged GIMP, and set the image mode to “index” with only three colors. This will force the “blue” and “green” hearts to be the same color. You will see that the subjective illusion remains.

    • Michael Fisher
      Posted February 17, 2018 at 1:21 pm | Permalink

      Are you saying I disparaged The GIMP? How?

    • infiniteimprobabilit
      Posted February 21, 2018 at 4:22 am | Permalink

      I think there are two effects.

      One, the actual image is not ‘clean’ in respect of colours – the stripes and the hearts ‘bleed’ into each other.

      But secondly, even if the image were constructed with clean sharp boundaries between the stripes, the eye would ‘average out’ the adjacent colours to give a blended colour. (This is of course how colour printing or colour monitors with just three colours of pixels can appear to show ‘full colour’).


  15. rwilsker
    Posted February 17, 2018 at 11:07 am | Permalink

    This seems like a (bad) semantic argument. You say the “hearts” are the same color, but what’s really meant is the underlying image of the heart, which is obscured, on purpose, by the vertical stripes. But a reasonable person will take the composite image as the image in question, and those images are certainly different.

    One way (the Feynman way) to look at it: keep adding vertical stripes until the underlying image is unseeable. Then there’s no question that the resulting images have different colors. So the only question here is what is meant by “the images” that are being compared.

  16. ploubere
    Posted February 17, 2018 at 11:17 am | Permalink

    Here is the scientific answer. This is a digital image, for which colors are defined by two systems: hex code or RGB value. (Some people mentioned RGBA yesterday; the A value is for Alpha, which is a measure of opacity, and not relevant here).

    It is a bitmap image, composed of rows of pixels, each of which has its own value. One can accurately measure each in a photo editor such as Photoshop.

    When I did so with the image above, and took random samples in both the seemingly blue and seemingly green areas, I found a range of values of up to 6 levels in each of the RGB channels: 14/249/154 in some, hex #0ef99a, 0/255/169 in others, hex #00ffa9, 21/246/140, hex #15f68c in yet others, for example.

    But there was not a clear difference between the blue and green areas, that is, the variations were consistent in both and within the same range.

    So it depends on what level of precision we insist on. In practical terms, they’re all about the same green, in precise terms, there is no single green, so none of the hearts are exactly the same. But every other one being more distinctly blue or green is an illusion, they’re all very close to the same.

    What likely happened is that the image was dithered when converted to bitmap, which is a process Photoshop uses to smooth jaggedy edges by averaging color values at the edges. Since each stripe is only 5-7 pixels wide, the dithering alters most of the pixels. Also, saving as a JPG alters color values: the compression algorithm groups similar colors and converts them to the same color.

    To further complicate matters, each digital display interprets the RGB values differently, so the green you’re seeing is probably different than what I’m seeing.

    • rickflick
      Posted February 17, 2018 at 4:51 pm | Permalink

      Thanks for the detailed analysis. What I think is the bottom line is that even though the example we are examining may have minor fluctuations in the green color value, it successfully demonstrates how the illusion is supposed to work. In other words, if the example did have perfect structure it would exhibit the blue hearts we see in this example. Overall a surprising illusion!

      • ploubere
        Posted February 17, 2018 at 5:43 pm | Permalink

        Yes, exactly. The original was probably made in a vector program such as Illustrator, which would have had exact and uniform color values. All the slight variations appear after it is rasterized and compressed.

  17. Hal
    Posted February 17, 2018 at 1:43 pm | Permalink

    I used the eye-drop color selection tool in Paintshop Pro to prove they are the same color. I can’t provide images to show though, so you’ll have to accept (or not) my conclusion as an Ipse dixit.

  18. eric
    Posted February 17, 2018 at 4:48 pm | Permalink

    Very spectacular illusion. Similar to the chessboard shadow illusion, where a white square in shadow and a black square out of the shadow are the same color.

    To answer Glenn above, I think you’re fundamentally wrong. I.e. a different mental process is creating the illusion than what you think. Specifically, your explanation is that the brain is considering the ‘whole heart’ when deciding on the color of the things behind the stripes.

    But the chess illusion shows this is false, because within each square there are not different colors contributing to some overall whole. The commonly accepted explanation for this type of illusion is not ‘brain is combining pixels’ like you suggest, but contextual bias. IOW your brain receives correct raw data, but interprets it wrongly because of a prior expectation. In the chess case, the brain expects to see a checkerboard of alternating colored squares, so it interprets the data wrongly as alternating colored squares. In the hearts case, the brain presumes the foreground lines to be all the same, so it reinterprets the background hearts to fulfill this expectation.

    At least, AIUI… 🙂

  19. glen1davidson
    Posted February 17, 2018 at 5:03 pm | Permalink

    Yes, I don’t disagree with that. Context is what really matters, but in this case I think that what matters is the context involving objects. If they weren’t “objects,” you could still make a similar illusion. I went with objects, because what I didn’t like was reading that the hearts were the “same color,” as if the stripes “running through them” weren’t also part of the hearts as we perceive them.

    It’s not that I think “objects” are necessary to make this kind of illusion work, but that the each of the differently colored objects in this case is composed of both colors of stripes.

    Glen Davidson

    • glen1davidson
      Posted February 17, 2018 at 5:03 pm | Permalink

      The above being a response to #18

    • eric
      Posted February 17, 2018 at 8:08 pm | Permalink

      I went with objects, because what I didn’t like was reading that the hearts were the “same color,” as if the stripes “running through them” weren’t also part of the hearts as we perceive them.

      If you are saying that the lines are an integral part of the illusion, i agree. If you’re saying that we are mentally combining the foreground line color to the background heart color to arrive at an average, I think we still disagree. Averaging
      cannot be the explanation, since the chessboard illusion shows that we can get the color wrong even for areas in our visual field that are a single, consistent color.

      • glen1davidson
        Posted February 17, 2018 at 8:43 pm | Permalink

        I didn’t write anything about color averaging. Clearly there’s a good deal more going on than that.

        Complementary colors themselves indicate that there’s more than just “averaging” or any such thing. Illusions like this one just emphasize that fact.

        Glen Davidson

  20. Steve Gerrard
    Posted February 17, 2018 at 7:27 pm | Permalink

    The dominant color of the blue hearts is the blue stripes, with the green as secondary. The dominant color of the green hearts is the green stripes, with orange as secondary. It doesn’t surprise me that they look different.

    The green in the two different hearts does look different, despite being the same. But I don’t find it that surprising that green stripes next to blue stripes look bluer than green stripes next to orange stripes.

  21. Eric
    Posted February 18, 2018 at 1:15 am | Permalink

    They are clearly meant to be the same color, however upon pulling it up in photoshop and comparing pixels directly they are slightly different shades. This is probably due to the way image is compressed at some point along the line.

%d bloggers like this: