June 23, 2008 at 3:42 pm · Filed under video
Ok, so after some thought on the concept of increasing resolution, and some research of companies performing similar functions I’ve come to perhaps a second part of all this. By taking the light coming through a lens and splitting that incoming light using a beam splitter into two or more directions, each landing on image sensor chips.
Canon, and many other companies already use a similar system on 3 CCD/3mos cameras to acquire more color. Their systems are simple in that each chip receives a filtered level of RGB, and then combines the result back to one image in processing. The result is great colors (the colors would in theory increase 1/3 fold compared to a bayerfiltered single chip).
The concept I speak of is similar in that you combine the results together, but without the color filters. Instead of building up multitudes of color spaces, it would build up pixel information by having an increased density of pixels. Of course this cannot be a complete substitution of simply having a larger chip with increased photovoltaic cells, but I think it can come close with tweaks.
Comparison 1: High-Dynamic Range Photography uses a similar concept in that a bracketed shot is taken (three shots of the same scene with different exposure settings taken in rapid succession), and then each picture is overlayed; taking from it the best of the picture. The result is great lighting and contrast throughout the scene. Check this hdr site out.
Comparison 2: Image Stacking in Astronomical Photography uses a similar concept as well, it will film a scene with dozens of frames/images for each second for minutes on end. You may have over 1000 images of the same piece of sky. Once completed, software is used to combine all the frames of the video into a single still image– aligning them together and ultimately reinforcing the imagery by running the final set through a series of image enhancing filters. Once stacked image processing is complete, the results are much greater than the sum of their parts in that the image is strikingly clear and crisp– all due to the increased pixel information from the multitudes of pictures taken.
Comparison 3: Video Resolution Increase using frame rate halving. By halving or even thirding a frame rate of a video, the extra frames can be used to increase the resolution and overall picture with the extra information they hold. Here’s an example of what I am talking about. Obviously it is an imperfect system, and bests with slight motion of the scene, but still it gets the point across. I think this is similar to how your webcam can take a still picture at HD resolution using a small VGA sensor, coupled with interpolation of pixels.
Increasing the amount of image sensors will in essence increase the amount of total pixel information. Two images, or maybe more, taken from the exact same angle at the exact same time would result in the image pixel density of twice that original single sensor amount. Of course you could go one step further and have the incoming light split into exacting halves or quads, each hitting a perfectly aligned sensor. The result would be 2-4 times the amount of pixel resolution almost instantly, by simply combing each sensors buffer into a single image. Though I think simply splitting the incoming light into two duplicate beams of light to hit two sensors, would be much easier to create. The resulting duo image could then be adjusted and combined to a greater picture. Albeit the exposure settings would be the same (though I’m sure this can be built into the camera using filters for exposure). Foveon x3 chips mathematically do this, except with layered translucent-sensors.
June 23, 2008 at 3:33 pm · Filed under Uncategorized
it hit me yesterday that putting gps in the android based phones will be helping google out in the longer run– it is not too unpredictable that each picture taken, will be geo mapped with gps and google maps, and will end up onto the googlemaps database itself. it’s only logical
June 3, 2008 at 10:23 am · Filed under code
finished up first stable running version of a new verification system I am working on. it involves an image being created from scratch using a pixel plotter and randomly generated numbers. each image is alike enough to show a general shape for that type of generated image. So far there are 4 types; though this is easily expandable into many more. the benefit of this over a captcha-style verification system is the lack of typing required, plus the shapes created do not resemble any character or text. this system is can be expanded with more shape possibilities, as well as combining different shapes into longer shape ‘messages’, perhaps called shapegrams. anyways, i finished writing the scripts to be incorporated as a wordpress plugin, which may or may not work on wordpress.com’s servers– i have not tested that yet, however it does work on mine. the scripts require the gd library to be installed and configured, my server was preconfigured with it, i have a feeling most are these days. to see it in action, click a posting on my blog and see the comments section.
it currently functions in 3 parts:
1. generate 5 images, set one as the key
2. user clicks image, type-code is sent back via ajax to script for verification
- if type is matched to the key, then a server side variable is created for later use and submit button revealed for comment form
- if mismatch, a reset of system and loop back to step 1
3. user submits comment form, a wordpress hook is used to catch wordpress during post-comment functioning, and if the serverside variable is setup the post is sent on to any other plugins installed for any further verification (ie: akismet). if the serverside variable is not setup(they tried to bypass the verification) the comment is immediately marked as spam and removed altogether (without your knowledge) before it is saved. I’m a bit new to wordpress’ framework, so this portion of the scripts has been slow to say the least.
I am preparing a cleaner code base for this, as well as a simple framework for extending the plugin via shapegram modules. this will more than likely be released on a GPL license, currently the code is not available, but should be shortly!
server requirements: gd library, php, wordpress(if using as plugin)
client requirements: javascript (ajax use, http requests)
May 27, 2008 at 5:00 am · Filed under off-topic
I know this is even farther off topic of regular technical jargon, but… my cats are up for adoption. I originally adopted these cats as young as a few weeks, one was feral (he turned out to be a great cat) and the other was going to be feral if the owner didn’t get the kittens a home (she turned out to be a bit kooky). Both are great, healthy, and love to play. If you like cats let me know, I appreciate it.
http://bandfair.com/cats
April 28, 2008 at 11:08 am · Filed under Uncategorized
Getting further into VMware and its great uses, I’ve come to an obstacle regarding disk space. The virtual machine (Ubuntu) was set to a specific allocation of disk space and because of its limited size of disk it would not upgrade to the newer system updates. Here’s what I ended up having to do, I’m using XP sp2 and my VMs are on an external hdd:
First googled up ‘increase vm disk’ and found this. Helpful article pointed to running the disk increase command from dos:
C:\Program Files\VMware\Vmware Workstation\vmware-vdiskmanager -x 8Gb “driveletter:\vm.vmdk”
Once resize was complete, which took almost instantaneously, I booted into the VM and tried to resize the disk. I realized the system disk was locked, something I expected, and so restarted the VM and focused in on it’s loading window, during the VMware loading screen I hit escape to goto Boot Menu. Unfortunately VMware software does not currently allow bios usb booting, they simply have not updated the bios with this feature. This amazes me, as I don’t see any reason not to implement this feature, who has time to make a boot disk from a cdrom, why not share a folder as a virtual cd/floppy? Anyways, inside the VMware software I edited the VM’s CD-rom to open a Gparted ‘live cd iso’ file I downloaded (feature found in VMware Workstation’s edit VM) and then I enabled cd-rom boot during bios screen. Gparted is a great utility to manage partitions.
I ended up having to delete the extended+swap partition to get the boot partition to resize. I’m not sure if the VM even needs a swap, as it never seems to get used on my machine, but nonetheless I reinstated a swap with 257mb space. Applied all new settings (this took a while), exited Gparted, and then stopped the VM, replaced the cdrom back to the regular cdrom drive and not the iso, then re-ran the VM.
April 1, 2008 at 9:54 am · Filed under code
more work has been done on peepfair.com
additions include:
- slightly better design layout
- additional custom parameters
- embed code provided

need to finish:
- parameters configuration generator to ease use
- implement account scripts
- implement mysql scripts
- add additional controllers (delete, star, multi-search)
to try older code work on flickr accounts (given up at this time) try peepfair.com/index-old.php
March 11, 2008 at 7:36 am · Filed under off-topic
I recently moved, and in the usual random shopping you might do at a walgreens/cvs, I purchased some scissors. When I got back to the apartment I realized that the package containing the two scissors could not be opened without a sharp cutting device, preferably scissors! Just the sort of inane irony that exists… here is a pic to cheer up this awfully boring post.

March 5, 2008 at 9:52 am · Filed under multitouch, video
Due to the high price of video cameras that capture higher resolution images (1024×768), albeit usually slowly (at or around 25-30fps), I am investigating if it is possible to overlay two camera feeds into one. The concept is to point two similar cameras at the same target and program a calibration technique that will align/shift the images together from the video once they come in to the computer. If possible and if at a decent speed, it will allow for twice the framerate at similar high resolutions.
note:
- stereo effect may occur if cameras are too far apart, this will have to be taken into consideration during any calibration process.
- it may also be possible to try an alternative of instead using cheaper 800×600 svga or even vga cameras (640×480) that run at 60fps natively, and point them each at a piece of the target. alignment/calibration plus eventual stitching of the images together would be needed, as well as any issues of overlapping that may occur. this method would provide the possibility of scanning the areas of the target at each individual camera image, which could potentially provide faster tracking times.
February 29, 2008 at 7:41 am · Filed under multitouch
I finished soldering together a 36 LED array of 850nm IR LEDs at 50 degrees viewing. It is a kit found on BGMicro.






As suggested by Dale Wheat, solder each piece at a time, and trim each row before the next. I would suggest starting from the middle row and working your way outwards, for added space; and make sure all connections are solid!
My goal is to use this in a diffused illumination multitouch device.




Notice the negative lead has printed dashes, it took me a little while to find out which was for negative/positive without using a voltmeter– I was afraid swapping the leads would fry something! Anyways, I do suggest a voltmeter.
The charger comes from an external maxtor hdd. Had I more time I would have tried to keep the end connector to preserve the use of the charger, but no matter I have a few laying around. The final pic is lighting up the sony cybershot dsc-w55 camera, which does not fully block IR light it seems.