Extracting fault, unconformity, and horizon surfaces from a seismic image is useful for interpretation of geologic structures and stratigraphic features. Although others automate the extraction of each type of these surfaces to some extent, it is difficult to automatically interpret a seismic image with all three types of surfaces because they could intersect with each other. For example, horizons can be especially difficult to extract from a seismic image complicated by faults and unconformities because a horizon surface can be dislocated at faults and terminated at unconformities. We have proposed a processing procedure to automatically extract all the faults, unconformities, and horizon surfaces from a 3D seismic image. In our processing, we first extracted fault surfaces, estimated fault slips, and undid the faulting in the seismic image. Then, we extracted unconformities from the unfaulted image with continuous reflectors across faults. Finally, we used the unconformities as constraints for image flattening and horizon extraction. Most of the processing was image processing or array processing and was achieved by efficiently solving partial differential equations. We used a 3D real example with faults and unconformities to demonstrate the entire image processing.