The result: A fairly simple but neat PHP script!
<?php

    define
('DPI'75);
    
define('OBS_DIST'DPI*12);
    
define('EYE_SEP', (int)DPI*2.5);
    
define('SEP_FACTOR'0.55);
    
define('MAX_SCENE_HEIGHT'255);
    
define('MIN_SCENE_HEIGHT'0);
    
define('MAX_DEPTH'OBS_DIST);
    
define('MIN_DEPTH', (int)((SEP_FACTOR*MAX_DEPTH*OBS_DIST)/((1-SEP_FACTOR)*MAX_DEPTH+OBS_DIST)));
    
define('HEIGHT_SCALE'2);

    
/* Init Random Number Generator */
    
srand(time());
        
    
$filename "depthmap.png";
        
    
$depth_img imagecreatefrompng($filename);
    
    if(!
$depth_img) die ("Error -- could not load depth image ($filename)!");
    
    
$img_width imagesx($depth_img);
    
$img_height imagesy($depth_img);
    
    
/* Create the image used in the stereogram */
    
$stereo_img imagecreate($img_width$img_height);
    
    if(!
$stereo_img) die("Error -- could not allocate stereo image!");
    
    
/* Initialize the colors that will be used in the image */
    
for($i 0$i 256$i++) {
                
        if(isset(
$_POST['bw'])) {
            
            
$rnd_color rand(0,255);
            
$colors[] = imagecolorallocate($stereo_img
                                           
$rnd_color,
                                           
$rnd_color,
                                           
$rnd_color);
        } else {
            
$colors[] = imagecolorallocate($stereo_img
                                           
rand(0,255),
                                           
rand(0,255),
                                           
rand(0,255));
        }
        
    }    
    
    
/* Load the img array with the random graphics data */
    
for($y 0$y $img_height$y++) {
        for(
$x 0$x $img_width$x++) {

            
//$buffer[$x][$y] = $colors[rand(0,255)];
            
$temp imagecolorsforindex($depth_img,imagecolorat($depth_img$x$y));
            
            
/* Get the current blue element */
            
$depth_color $temp['blue'];
            
$height $depth_color/HEIGHT_SCALE;
            
$height = ($height MAX_SCENE_HEIGHT) ? MAX_SCENE_HEIGHT $height;
            
$height = ($height MIN_SCENE_HEIGHT) ? MIN_SCENE_HEIGHT $height;
            
$feature_z MAX_DEPTH-$height*(MAX_DEPTH-MIN_DEPTH)/256;
            
$sep = (int)((float)(EYE_SEP*$feature_z)/($feature_z+OBS_DIST));
        
            
$left_px = (int)$x-($sep/2);
            
$right_px = (int)$x+($sep/2);
        
            if((
$left_px >= 0) && ($right_px $img_width)) {
                
                if(!isset(
$buffer[$left_px][$y]))
                    
$buffer[$left_px][$y] = $colors[rand(1,255)];
                
                
$buffer[$right_px][$y] = $buffer[$left_px][$y];    
            }
            
        }
        
        for(
$x 0$x $img_width;$x++)
            if(!isset(
$buffer[$x][$y])) 
                
$buffer[$x][$y] = $colors[rand(1,255)];
    }
    
    
    
    
/* Output PNG File */
    
    
for($y 0$y $img_height$y++) {
        for(
$x 0$x $img_width$x++) {
            
imagesetpixel($stereo_img,$x$y$buffer[$x][$y]);
        }
    }
    
    
header("Content-type:  image/png");
    
$black imagecolorclosest($stereo_img0,0,0);
    
$white imagecolorclosest($stereo_img0xff0xff0xff);
    
imagefilledrectangle($stereo_img0$img_height-20$img_width$img_height$black);
    
imagestring($stereo_img15$img_height-10"Made at http://www.coggeshall.org/stereogram.php"$white);
    
    
imagepng($stereo_img);
                        
?>