Clear Filters
Clear Filters

Digital Watermarking using DWT & DCT

4 views (last 30 days)
kush
kush on 23 Mar 2012
Answered: honey on 16 Mar 2020
Can any one plz help me to implement this algorithm for watermarking using Dct & Dwt
Step 1: Perform DWT on the host image to decompose it into four non-overlapping multi-resolution coefficient sets: LL1, HL1, LH1 and HH1.
Step 2: Perform DWT again on two HL1 and LH1 coefficient sets to get eight smaller coefficient sets and choose four coefficient sets: HL12, LH12, HL22 and LH22 as shown in Figure 3(a).
Step 3: Perform DWT again on four coefficient sets: HL12, LH12, HL22 and LH22 to get sixteen smaller Coefficient sets and choose four coefficient sets: HL13, LH13, HL23 and LH23as shown in Figure 3 (b).
Step 4: Divide four coefficient sets: HL13, LH13, HL23 and LH23 into 4 x 4 blocks.
Step 5: Perform DCT to each block in the chosen coefficient sets (HL13, LH13, HL23 and LH23). These coefficients sets are chosen to inquire both of imperceptibility and robustness of algorithms equally.
Step 6: scramble the watermark signal with Arnold algorithm for key times and gain the scrambled watermark Ws (i , j), key times can be see as secret key.
Step 7: Re-formulate the scramble watermark image into a vector of zeros and ones.
Step 8: Generate two uncorrelated pseudorandom sequences by a key. One sequence is used to embed the watermark bit 0 (PN_0) and the other sequence is used to embed the watermark bit 1 (PN_1). Number of elements in each of the two pseudorandom sequences must be equal to the number of mid-band elements of the DCT-transformed, DWT coefficient sets.
Step 9: Embed the two pseudorandom sequences, PN_0 and P N_1, w ith a g ain factor α i n t he D CT transformed 4x4 blocks of the selected, DWT coefficient sets of the host image. Instead of embedding in all coefficients of the DCT block, it applied only to the mid-band DCT coefficients. If we donate X as the matrix of the mid-band coefficients of the DCT transformed block, then embedding is done as x=x+a*PN0 for watermark bit 0 & x=x+a*PN1 for watermark bit 1
Step 10: Perform inverse DCT (IDCT) on each block after its mid-band coefficients have been modified to embed the watermark bits as described in the previous step.
Step 11: Perform the inverse DWT (IDWT) on the DWT transformed image, including the modified coefficient sets, to produce the watermarked host image.
  1 Comment
PRASHANT JADHAV
PRASHANT JADHAV on 20 Aug 2017
Edited: PRASHANT JADHAV on 20 Aug 2017
i have done this coding up to step 3 I am confuse in step 4
can you clear some more about: Divide four coefficient sets: HL13, LH13, HL23 and LH23 into 4 x 4 blocks.
here do you want every coefficient in block of 4*4? then it will be depends upon size of image that how many no of blocks will get created. or you want to keep input image size fix? or

Sign in to comment.

Answers (2)

Ajay Ganti
Ajay Ganti on 28 Feb 2018
I'm also having the same problem. Can you send me the complete code of this problem?

honey
honey on 16 Mar 2020
I have a question that why we are using both dct and dwt not any one of them

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!