A 3D seismic image contains structural and stratigraphic features such as reflections, faults, and channels. When smoothing such an image, we want to enhance all of these features so that they are easier to interpret. Most smoothing methods aim to enhance reflections but may blur faults and channels in the image. A few methods smooth seismic reflections while preserving faults and channel boundaries. However, it has not well-discussed to smooth simultaneously along the seismic reflections and channels, which are linear features apparent within dipping reflections. In addition, to interpret faults and channels, extra steps are required to compute attributes or mappings of faults and channels from a seismic image. Such fault and channel attributes are often sensitive to noise because they are typically computed as discontinuities of seismic reflections. In this paper, we have developed methods to simultaneously enhance seismic reflections, faults, and channels while obtaining mappings of the faults and channels. In these methods, we first estimate the orientations of the reflections, faults, and channels directly in a seismic image. We then use the estimated orientations to control the smoothing directions in an efficient iterative diffusion scheme to smooth a seismic image along the reflections and channels. In this iterative scheme, we also efficiently compute mappings of faults and channels, which are used to control smoothing extents in the diffusion to stop smoothing across them. This diffusion scheme iteratively smooths a seismic image along reflections and channels while updating the mappings of faults and channels. By doing this, we will finally obtain an enhanced seismic image (with enhanced reflections and channels and sharpened faults) and cleaned mappings of faults and channels (discontinuities related to noise are cleaned up). We have examined the methods using 2D and 3D real seismic images.