A new digital watermarking algorithm based on the contourlet transform is proposed to improve the robustness and anti-attack performances of digital watermarking. The algorithm uses the Arnold scrambling technique and the singular value decomposition (SVD) scheme. The Arnold scrambling technique is used to preprocess the watermark, and the SVD scheme is used to find the best suitable hiding points. After the contourlet transform of the carrier image, intermediate frequency sub-bands are decomposed to obtain the singularity values. Then the watermark bits scrambled in the Arnold rules are dispersedly embedded into the selected SVD points. Finally, the inverse contourlet transform is applied to obtain the carrier image with the watermark. In the extraction part, the watermark can be extracted by the semi-blind watermark extracting algorithm. Simulation results show that the proposed algorithm has better hiding and robustness performances than the traditional contourlet watermarking algorithm and the contourlet watermarking algorithm with SVD. Meanwhile, it has good robustness performances when the embedded watermark is attacked by Gaussian noise, salt- and-pepper noise, multiplicative noise, image scaling and image cutting attacks, etc. while security is ensured.