Watermarking algorithms based on the geometric invariance of image histogram are effective and can resist various common attacks. However, all existing histogram-based image watermarking algorithms are constructed from all the pixels of the entire image; thus the embedded watermark energy is randomly distributed throughout the image, causing visual quality degradation in the smooth areas. In this paper, an improved algorithm using human visual perception characteristics is proposed. Firstly, we calculate the JND threshold mapping of the carrier image and select a portion of the pixels with the largest threshold as samples of the statistical histogram. Secondly, we calculate the mean of the selected pixel set, determine the embedding region and divide it into several groups. Finally, by adjusting the number of pixels in three bins per group, 2 bits of the watermark are embedded. According to the geometric invariance of the histogram and the different sensitivity of human eyes to the smooth and textured areas, we embed the watermark in the positions which are not easily perceived by human eyes. Experiments show that the proposed algorithm significantly improves the visual quality of the smooth areas in the watermarked image, but it has weaker robustness to signal processing attacks.