<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Graffiti Shroud</title>
	<atom:link href="http://krazydad.com/blog/2012/08/11/graffiti-shroud/feed/" rel="self" type="application/rss+xml" />
	<link>http://krazydad.com/blog/2012/08/11/graffiti-shroud/</link>
	<description>Interactive art, experimental software toys, screensavers and games by Jim Bumgardner.</description>
	<lastBuildDate>Thu, 21 Mar 2013 15:55:06 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
	<item>
		<title>By: jbum</title>
		<link>http://krazydad.com/blog/2012/08/11/graffiti-shroud/comment-page-1/#comment-45205</link>
		<dc:creator>jbum</dc:creator>
		<pubDate>Wed, 22 Aug 2012 18:52:58 +0000</pubDate>
		<guid isPermaLink="false">http://krazydad.com/blog/?p=1547#comment-45205</guid>
		<description><![CDATA[Yes, I wrote a Processing program to do it.  The algorithm is essentially:

1. Start with a random assortment of 300 photos from the larger the list (of 20,000 photos).

2. For each unselected photo, A from the set of 20000

3.     For each B of the 200 selected photos

4.        Swap A and B.
           If the swap produces a better match to the target image, keep it.

I repeat from step 2 until no progress can be made.

The &quot;better match&quot; is the same type of matching used for photo mosaics. I compute the sum of the RGB differences for each pixel. Lower sums are closer matches.]]></description>
		<content:encoded><![CDATA[<p>Yes, I wrote a Processing program to do it.  The algorithm is essentially:</p>
<p>1. Start with a random assortment of 300 photos from the larger the list (of 20,000 photos).</p>
<p>2. For each unselected photo, A from the set of 20000</p>
<p>3.     For each B of the 200 selected photos</p>
<p>4.        Swap A and B.<br />
           If the swap produces a better match to the target image, keep it.</p>
<p>I repeat from step 2 until no progress can be made.</p>
<p>The &#8220;better match&#8221; is the same type of matching used for photo mosaics. I compute the sum of the RGB differences for each pixel. Lower sums are closer matches.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lars</title>
		<link>http://krazydad.com/blog/2012/08/11/graffiti-shroud/comment-page-1/#comment-45204</link>
		<dc:creator>Lars</dc:creator>
		<pubDate>Wed, 22 Aug 2012 18:42:25 +0000</pubDate>
		<guid isPermaLink="false">http://krazydad.com/blog/?p=1547#comment-45204</guid>
		<description><![CDATA[This is an interesting effect.

I assume you &quot;carefully choose&quot; the 300 photos using a program, correct (not manually)? What&#039;s the algorithm like?]]></description>
		<content:encoded><![CDATA[<p>This is an interesting effect.</p>
<p>I assume you &#8220;carefully choose&#8221; the 300 photos using a program, correct (not manually)? What&#8217;s the algorithm like?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jbum</title>
		<link>http://krazydad.com/blog/2012/08/11/graffiti-shroud/comment-page-1/#comment-45201</link>
		<dc:creator>jbum</dc:creator>
		<pubDate>Sun, 19 Aug 2012 04:37:44 +0000</pubDate>
		<guid isPermaLink="false">http://krazydad.com/blog/?p=1547#comment-45201</guid>
		<description><![CDATA[What I&#039;m doing uses integers, but it shouldn&#039;t accumulate errors in the way you describe.

I have an array of integers which represent the sums of the R,G,B components of each pixel.  For each image, I add it&#039;s value to the array.  So, for the pixel at 0,0, given 3 images, I might add the following values:

Image 1: rgb(0,0) = 50,  60,  50
Image 2: rgb(0,0) = 62,  72, 100
Image 3: rgb(0,0) = 200, 198, 170
------------
This produces: 312, 338, 320

After I&#039;ve added all the images. I then scale the numbers (&quot;normalize&quot; them) so that the lowest value maps to 0, and the highest value maps to 255.]]></description>
		<content:encoded><![CDATA[<p>What I&#8217;m doing uses integers, but it shouldn&#8217;t accumulate errors in the way you describe.</p>
<p>I have an array of integers which represent the sums of the R,G,B components of each pixel.  For each image, I add it&#8217;s value to the array.  So, for the pixel at 0,0, given 3 images, I might add the following values:</p>
<p>Image 1: rgb(0,0) = 50,  60,  50<br />
Image 2: rgb(0,0) = 62,  72, 100<br />
Image 3: rgb(0,0) = 200, 198, 170<br />
&#8212;&#8212;&#8212;&#8212;<br />
This produces: 312, 338, 320</p>
<p>After I&#8217;ve added all the images. I then scale the numbers (&#8220;normalize&#8221; them) so that the lowest value maps to 0, and the highest value maps to 255.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nick Porcino</title>
		<link>http://krazydad.com/blog/2012/08/11/graffiti-shroud/comment-page-1/#comment-45200</link>
		<dc:creator>Nick Porcino</dc:creator>
		<pubDate>Sun, 19 Aug 2012 03:21:07 +0000</pubDate>
		<guid isPermaLink="false">http://krazydad.com/blog/?p=1547#comment-45200</guid>
		<description><![CDATA[Are you doing the blending in floating point, or integer? If integer, cumulative error gradually push pixel values to the corners of the color cube and muddy colors result. If you&#039;ve already done the blending in float I have no explanation :)]]></description>
		<content:encoded><![CDATA[<p>Are you doing the blending in floating point, or integer? If integer, cumulative error gradually push pixel values to the corners of the color cube and muddy colors result. If you&#8217;ve already done the blending in float I have no explanation :)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
