top of page

The second way we attempted to compress the image was by multiplying the image by a matrix that had zeroes for all of the high frequency parts of the picture and had ones for the low frequency parts (the upper left). A much smaller version of this matrix is shown below.

A comparison between this method and the original one is shown below

One idea that we came up with for attempting to improve our system of implementing a watermark is to start with an uncompressed image and an uncompressed watermark image (the following example uses images in bmp format) instead of the already-compressed jpg images we used originally. From there, we applied the same method of taking the discrete cosine transform of both images and adding the DCT coefficients of each pixel together in the frequency domain, with the coefficients of the watermarked image being multiplied by a scale factor (0.5 in the following example). We then tried two different methods of compressing the resulting image, the first of which is by using the imwrite function built into MATLAB to write the bmp image into a jpeg image. A comparison between this method and the method of using the compressed images is shown below, along with the original images.

Attempts to Improve Watermark Embedding

Obviously, neither of these new compression methods really made any difference from the original method.

Results:

1  1  1  0  0

1  1  0  0  0

1  0  0  0  0

0  0  0  0  0

0  0  0  0  0

We then turned to manipulating the watermark before embedding it into the picture. Two major changes were made:

1. "Stir" the watermark and scatter it across the entire image in the spacial domain. We can generate a random permutation that maps each pixel in the watermark to a unique location in the original image. Doing so allows us to diffuse the watermark, making it less visible. Also, this process effectively encrypts the watermark because one needs the permutation used (also the strength of the watermark) to recover the embedded watermark.

2. Add the randomized watermark in spatial domain with the DCT of the original image. Mixing two domains means the added watermark scatters across the entire spectrum and manifests as noise in the spatial domain given sufficiently low strength.

The system diagram of our implementation is provided below.

3. This process could also be done using the FFT or the DWT. The output of the system would be the same in any of the cases. The following example is done using the DCT.

A Different Approach

Original Image

Watermark

Watermark after scrambling. Strength = 0.05

Watermarked Image Notice the noise in the background.

Differences with the original image.

Spectrum of the original image, the watermark, and the watermarked image.

Watermark recovered from the watermarked image using the process described above in the flow chart.

bottom of page