We present a novel algorithm to remove motion blur from a single blurred image. To estimate the unknown motion blur kernel as accurately as possible, we propose an adaptive algorithm using anisotropic regularization. The proposed algorithm preserves the point spread function (PSF) path while keeping the properties of the motion PSF when solving for the blur kernel. Adaptive anisotropic regularization and refinement of the blur kernels are incorporated into an iterative process to improve the precision of the blur kernel. Maximum likelihood (ML) estimation deblurring based on edge-preserving regularization is derived to reduce artifacts while avoiding oversmoothing of the details. By using the estimated blur kernel and the proposed ML estimation deblurring, the motion blur can be removed effectively. The experimental results for real motion blurred images show that the proposed algorithm can removes motion blur effectively for a variety of real scenes.