MadSci Network: Computer Science |
Brandon, You actually have two questions buried in there. First, let me address increasing the data in a pixel: At the most basic level, a single pixel (from "picture element") is a single "value" that represents some quantity (e.g., light, heat, magnetics, color, reflectance, etc.) for a point in 2 dimensions. That point is identified by a two-dimensional index, usually X and Y, but it must be TWO variables. The X and Y are called the "address" of the pixel. The "spacing" of the pixel is the distance between the centers of adjacent pixels. The "value" of the pixel can actually consist of more than one number and, when it does, we call all of the numbers a "vector". The only constraint is that all pixel's in an image must have the same "depth" (i.e., the same size vector, the same number of numbers). A color picture on your computer screen as a depth of 3, for the Red, Green and Blue numbers that make up each pixel. Some aircraft and satellites take pictures with 4, 7, tens, hundreds or thousands of numbers for each pixel. In these cases, the numbers represent how much light in a given "band" is reflected off the terrain's surface. Most of these bands are in the "infrared" light and are not visible to the human eye. OK, back to the question: When you ask how to increase the data in a pixel, one can do this in two ways - (1) increasing the depth and (2) decreasing the spacing. Increasing the depth is easy - just add another set of numbers to each pixel. This is often done when combining images from different sensors and it is known as "image fusion". Increasing the spacing is a little more difficult. The process is often called "upsampling". One simple way to do this is to just split each pixel into four equal sized pixels of the same value. This is known as pixel replication, or "nearest neighbor interpolation" and does not usually yield the best visual results. Some other methods are called "bilinear interpolation", "bicubic interpolation" and "spline interpolation". Each method uses a mathematical formula that calculates the value for each new split pixel from the original pixel and its neighbors. The important thing to remember is that when you upsample images, you are NOT INCREASING THE INFORMATION in the image - only the presentation of the information. (A lot of people don't understand this point.) Now, about 3D pixels. You have thought of a very good idea. In fact it is so good that, unfortunately, a lot of other people have also thought of it. A 3D pixel is usually called a "voxel" which stands for either "volume element" or "volume pixel". The only difference between a voxel and a pixel is that a voxel has a 3D address - in other words it takes an X, Y, and Z to give the location of a voxel. Voxels are very powerful, because they let us represent values of things in 3D space, like our world, rather than on just a 2-D plane. Voxels are used in medical imaging, earth science, computer aided design, 3D visualization and a host of other very fascinating applications. Try doing web searches using combinations of the terms "voxel pixel image volume visualization medicine". (I use the HotBot search tool at http://hotbot.lycos.com). There are some great web pages (way too many to mention here) that have good 2D pictures and descriptions of voxels in action. Can you think of information that could be represented in 3D? If you can, try building a voxel representation of it. If you like voxels, you can also try writing a computer program that creates a voxel world and then allows you to slice that world up into 2D slices (this is how MRI, CAT and PET scans work). There are also "virtual reality" computer programs you can experiment with that use voxels. I'm sure that there are many uses for voxels that haven't even been discovered yet! Good luck with your studies and keep up your interest in imagery and voxels. Regards, Todd Jamison CEO Observera, Inc. http://www.observera.com
Try the links in the MadSci Library for more information on Computer Science.