A watermark embedding method that embeds a watermark in a digital image, the method comprising: a step (S25410-S25450) of determining a degree of local image complexity having a large value for texture regions in the image, and having a small value for flat regions and edge portions; and a step of changing complex portions of the image more than low complex degree portions in accordance with the degree of local image complexity to obtain a watermark embedded image; characterised in that the step (S25410-S25450) of determining the degree of local image complexity of the image includes: obtaining (S25420, S22122-S22125) an edge/texture component value image by measuring an edge and a texture region by using a counter which, for each pixel of the input image, is initially set to zero and then incremented when a difference between each pixel and an adjacent pixel in the input image is equal to or greater than a threshold; dividing (S25430, S23231) the edge/texture component value image into small blocks; obtaining (S25430, S23232, S23233) the sum of edge/texture component values in the block for each divided block; determining a texture degree index of the block as a value which is said sum; and multiplying (S25440, S25441-S25443) each edge/texture component value in a divided block by a texture degree index corresponding to the divided block so as to obtain a texture component value image, and wherein the texture component value image is used as the degree of local image complexity for obtaining the watermark embedded image. a step (S25410-S25450) of determining a degree of local image complexity having a large value for texture regions in the image, and having a small value for flat regions and edge portions; and a step of changing complex portions of the image more than low complex degree portions in accordance with the degree of local image complexity to obtain a watermark embedded image; characterised in that the step (S25410-S25450) of determining the degree of local image complexity of the image includes: obtaining (S25420, S22122-S22125) an edge/texture component value image by measuring an edge and a texture region by using a counter which, for each pixel of the input image, is initially set to zero and then incremented when a difference between each pixel and an adjacent pixel in the input image is equal to or greater than a threshold; dividing (S25430, S23231) the edge/texture component value image into small blocks; obtaining (S25430, S23232, S23233) the sum of edge/texture component values in the block for each divided block; determining a texture degree index of the block as a value which is said sum; and multiplying (S25440, S25441-S25443) each edge/texture component value in a divided block by a texture degree index corresponding to the divided block so as to obtain a texture component value image, and wherein the texture component value image is used as the degree of local image complexity for obtaining the watermark embedded image. obtaining (S25420, S22122-S22125) an edge/texture component value image by measuring an edge and a texture region by using a counter which, for each pixel of the input image, is initially set to zero and then incremented when a difference between each pixel and an adjacent pixel in the input image is equal to or greater than a threshold; dividing (S25430, S23231) the edge/texture component value image into small blocks; obtaining (S25430, S23232, S23233) the sum of edge/texture component values in the block for each divided block; determining a texture degree index of the block as a value which is said sum; and multiplying (S25440, S25441-S25443) each edge/texture component value in a divided block by a texture degree index corresponding to the divided block so as to obtain a texture component value image, and wherein the texture component value image is used as the degree of local image complexity for obtaining the watermark embedded image.