Tuesday, 23 June 2015

MATLAB code for Combined DCT+DWT Image Watermarking.


The proliferation of digitized media due to the rapid growth of networked multimedia systems, has created an urgent need for copyright enforcement technologies that can protect copyright ownership of multimedia objects. Digital image watermarking is one such technology that has been developed to protect digital images from illegal manipulations. In particular, digital image watermarking algorithms which are based on the discrete wavelet transform have been widely recognized to be more prevalent than others.
This is due to the wavelets' excellent spatial localization, frequency spread, and multi-resolution characteristics, which are similar to the theoretical models of the human visual system. In this paper, we describe an imperceptible and a robust combined DWT-DCT digital image watermarking algorithm. The algorithm watermarks a given digital image using a combination of the Discrete Wavelet Transform (DWT) and the Discrete Cosine Transform (DCT).

Sender: 
Following figure shows you transmitter operation.

  Fig: Combined DCT-DWT Watermark embedding procedure
Step 1: Apply DWT to decompose the cover host image into four non-overlapping multi-resolution sub-bands: LL1, HL1, LH1, and HH1. 
Step 2: Apply DWT again to sub-band HL1 to get  four smaller sub-bands and choose the HL2 sub-band as shown in Fig. 2 a. Or, apply DWT to sub-band HH1 to get four smaller sub-bands and choose the HH2 sub-band
Step 3: Divide the sub-band HL2 (or HH2) into 4 x 4 blocks. 
Step 4: Apply DCT to each block in the chosen sub-band (HL2 or HH2). 
Step 5: Re-formulate the grey-scale watermark image into a vector of zeros and ones.
Step 6: Generate two uncorrelated pseudorandom sequences. One sequence is used to embed the watermark bit 0 (PN_0) and the other sequence is sued 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 sub-bands.   
Step 7: Embed the two pseudorandom sequences, PN_0 and PN_1, with a gain factor, in the DCT transformed 4x4 blocks of the selected DWT sub-bands of the host  image.
Step 8: Apply inverse DCT (IDCT) to each block after its mid-band coefficients have been modified to embed the watermark bits as described in the previous step.  
Step 9: Apply the inverse DWT (IDWT) on the DWT transformed image, including the modified sub-band, to produce the watermarked host image.

Receiver: 
Following figure shows you Receiver operation.

Fig: Combined DCT-DWT Watermark extraction procedure

Step 1: Apply DWT to decompose the watermarked image into four non-overlapping multi-resolution subbands: LL1, HL1, LH1, and HH1. 
Step 2: Apply DWT to HL1 to get four smaller subbands, and choose the sub-band HL2, apply DWT to the HH1 sub-band to get four smaller sub-bands, and choose the HH2 sub-band, as shown in Fig. 2 b. 
Step 3: Divide the sub-ban HL2 (or HH2) into 4×4 blocks. 
Step 4: Apply DCT to each block in the chosen sub-band (HL2 or HH2), and extract the mid-band coefficients of each DCT transformed block. 
Step 5: Regenerate the two pseudorandom sequences (PN_0 and PN_1) using the same seed used in the watermark embedding procedure.  
Step 6: For each block in the sub-band HL2 (or HH2), calculate the correlation between the mid-band coefficients and the two generated pseudorandom sequences (PN_0 and PN_1).   If the correlation with the PN_0 was higher than the correlation with PN_1, then the extracted watermark bit is considered 0, otherwise the extracted watermark is considered 1.
Step 7: Reconstruct the watermark using the extracted watermark bits, and compute the similarity between the original and extracted watermarks.

MATLAB Implementation: 

Video of the code:
if you want this code then contact us on....
Contact
Mobile Number: +91-9637253197
Whatsup Number: +91-9637253197
Email ID: matlabprojects07@gmail.com

6 comments:

  1. i want this code for study, if possible will you mail me it on pmjadhav85@gmail.com, I dont want gui, will you please sent only code.

    ReplyDelete
    Replies
    1. i want this code for study, if possible will you mail me it alialmosaye2011@gmail.com, I dont want gui, will you please sent only code.

      Delete
  2. Hi Arjun, could you please help me to better understand the current implementation for blind scheme watermaking . I am new in this field I and I try to better understand the different algorithm to apply the watermarking to a real life application. My mail is chaidamous@live.fr and it would be great to test your MATLAB project

    ReplyDelete
  3. i want this code for my finally project , if possible will you mail me it dodybud@gmail.com, will you please sent code.

    ReplyDelete
  4. i want this code please...;my mail is: sirsir2525@yahoo.fr

    ReplyDelete
  5. i want this code for study, if possible will you mail me it on madubasu@gmail.com, I dont want gui, will you please sent only code.

    ReplyDelete