infile="hamburger.png"
# get name before the .png
inname=`convert $infile -format "%t" info:`
# separate channels
convert $infile -separate ${inname}.png
outfile="hamburger_land.png"
# get double size for output
ww=`identify -ping -format "%w" $infile`
hh=`identify -ping -format "%h" $infile`
ww=`convert xc: -format "%[fx:2*$ww]" info:`
hh=`convert xc: -format "%[fx:2*$hh]" info:`
# take input and double it, then make green and blue channels black
# create striped image with
first white, then black alternating and make white transparent
# overlay black stripes over red image
convert \( ${inname}.png -scale 200% -fill black -colorize 0,100,100 \) \
\( -size 1x1 xc:white xc:black -append \
-write mpr:stripes +delete -size ${ww}x${hh} tile:mpr:stripes -transparent white \) \
-compose over -composite tmp1.png
# take green channel only (as grayscale) and double it
# create striped image with
first black, then white alternating and make white transparent
# overlay black stripes over grayscale green channel image
convert \( ${inname}-1.png -scale 200% \) \
\( -size 1x1 xc:black xc:white -append \
-write mpr:stripes +delete -size ${ww}x${hh} tile:mpr:stripes -transparent white \) \
-compose over -composite tmp2.png
# make black stripes in both images transparent and composite the two images
convert \( tmp1.png -transparent black \) \
\( tmp2.png -transparent black \) \
-compose over -composite $outfile
Personally, I don't see any green or yellow in either my version or the one referenced and I am not color blind.