We retrieve P diving waves by applying seismic interferometry to ambient-noise records observed at Long Beach, California, and invert travel times of these waves to estimate 3-D P wave velocity structure. The ambient noise is recorded by a 2-D dense and large network, which has about 2500 receivers with 100?m spacing. Compared to surface wave extraction, body wave extraction is a much greater challenge because ambient noise is typically dominated by surface wave energy. For each individual receiver pair, the cross-correlation function obtained from ambient-noise data does not show clear body waves. Although we can reconstruct body waves when we stack correlation functions over all receiver pairs, we need to extract body waves at each receiver pair separately for imaging spatial heterogeneity of subsurface structure. Therefore, we employ two filters after correlation to seek body waves between individual receiver pairs. The first filter is a selection filter based on the similarity between each correlation function and the stacked function. After selecting traces containing stronger body waves, we retain about two million correlation functions (35% of all correlation functions) and successfully preserve most of body wave energy in the retained traces. The second filter is a noise suppression filter to enhance coherent energy (body waves here) and suppress incoherent noise in each trace. After applying these filters, we can reconstruct clear body waves from each virtual source. As an application of using extracted body waves, we estimate 3-D P wave velocities from these waves with travel time tomography. This study is the first body wave tomography result obtained from only ambient noise recorded at the ground surface. The velocity structure estimated from body waves has higher resolution than estimated from surface waves.