Traffic surveillance cameras are becoming a viable replacement for inductive loop detectors. The effectiveness of these cameras, however, depends on video image processing algorithms that can alleviate common problems such as shadows, vehicle occlusion, reflection, and camera shake. Shadows have proved to be a major source of error in the detection and classification of vehicles. Three algorithms of increasing complexity are proposed to address the shadow problem. The algorithms each address the need to remove cast shadows from vehicles while preserving self-shadows, or those areas of a vehicle that are hidden from illumination. They are also geared toward real-time analysis, which requires that they can be implemented efficiently and cannot have complex training or learning requirements. The dual-pass Otsu method of shadow removal was the simplest in application but had the poorest performance. The proposed region growing technique, though showing considerable promise, failed when the pixel intensity varied widely in the shadow region. The last technique used edge imaging to recognize shadows as areas with few edges or with edges substantially similar to the background. This method clearly outperformed the other methods and was subsequently proved in a separate paper describing a prototype vehicle detection and classification system.