The task of discovering and extracting the geometric features such as points, lines, corners and curves plays an important role in object recognition, 3D modeling, robot mapping and navigation. In this paper, we present an effective 3D line extraction method by using the combined data from 2D images and 3D point clouds. 2D lines are first extracted from 2D image, then are projected back to get the 3D point set for each line. For processing the point sets, we use fuzzy k-means with Mahalanobis distance measurement between 3D point and cluster centers, then eigen-analysis is invoked to regroup the point sets, finally the 3D lines are estimated using refined point sets. Our algorithm was evaluated on the real noisy test scenes, and compared with RANSAC based line fitting algorithm, shows the high performance and accurate results.