IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Images Discussion :

very fast Revesible Contrast Mapping


Sujet :

Images

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 25
    Points : 24
    Points
    24
    Par défaut very fast Revesible Contrast Mapping
    Bonsoir,

    j'ai développé une fonction d'insertion de la méthode RCM mais j'ai des bugs qui sortent après l'exécution sur matlab et ça dérange pour faire l'extraction du watermark après!

    Aidez moi s'il vous plait pour trouver la faille!

    Voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    function insertionRCM
    global key;
    global img;
    global xc;
    xc=0;
    key=randperm(4096);
    keye=key(1:2:4096);
    keyi=key(2:2:4096);
    l=1;
    ii=1;
    water=zeros(2048,16);
    img=imread('lena512.bmp');
    ss=img;
    taille=size(img);
    for i=1:8:taille(1,1)
        for j=1:8:taille(1,2)
            wt=genwtblk(i,j);
            taillew=length(wt);       
            water(ii,1:taillew)=wt;
            ii=ii+1;
        end
    end
    water=water(keye,:);
    size(water)
    while l<=length(keyi)
            indice=keyi(l);
            indicei=fix((indice-1)/64)+1;
            indicej=mod(indice-1,64)*8+1;
            ta=size(water);
            ta=ta(1,2);
            wt=water(l,1:ta);
            mat=insertinblk(indicei,indicej,wt);
            img=mat;
            l=l+1;
    end
    x=0;     
    for i=1:1:512
        for j=1:1:512
            if ss(i,j)~=mat(i,j)
                x=x+1;
            end
        end
    end
    figure,imshow(img);
    figure,imshow(mat);
    imwrite(mat,'lenatest.bmp');
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function wt=genwtblk(il,ic)
    global img;
    k=0;
    wt(1)=0;
    global xc
    for i=il:1:il+7
        for j=ic:2:ic+6
            if  NonAp(img(i,j),img(i,j+1)),%(x,y) n'appartient pas à Dc;    
               xc=xc+1;
               [i,j]
                k=k+1;
               wt(k)= mod(img(i,j),2);
            end
        end
    end
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    function s=NonAp(x,y)
     
       s=false;
     
           p1=2*x- y;
           p2=2*y- x;
           if ((p1<1|p1>255|p2<1|p2>255));
              s= true;
           else if odd(x,y)
                   if p1==1 | p1==255 | p2==1 | p2==255
                       s=true;
                   end
               end   
           end
     
    end
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    function  mat=insertinblk(ii,ij,wt)
    global img;
    mat=img;
    count=0;
    s=size(wt);
    s=s(1,2);
    k=0;
    for i=ii:1:ii+7,
      for j=ij:2:ij+6,
     
     
         if NonAp(img(i,j),img(i,j+1)),%n'appartient pas àDc;
             mat(i,j)=img(i,j)-1;%forcer le lsb de x à 0;
     
         else %appartient à Dc;
              k=k+1;
            if(k<= s),
     
             if(odd(img(i,j),img(i,j+1))),
                %(x,y)impair et appartient à Dc;
                mat(i,j)=img(i,j)-1;%mettre le lsb de x à 0;
                %stocker le bit dans le lsb de y;
                if(wt(1,k)==0),
     
                  mat(i,j+1)= img(i,j+1)-1;
                end
     
             else %pas les 2impairs;
                 mat(i,j)=2*img(i,j) - img(i,j+1);
                 mat(i,j+1)=2*img(i,j+1) - img(i,j);
                 count=count+1;
                 %mettre le lsb de x à 1;
                 mat(i,j)=set1(img(i,j));
     
                %stoker bit dans le lsb de y;
                if (wt(1,k)==1),
                    mat(i,j+1)=set1(img(i,j+1));
                else
                    mat(i,j+1)=set0(img(i,j+1));
                end
             end
              end 
         end
      end
    end
    merci d'avance!
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [EJB2.1 Entity] [BES] Mapping automatique et clés étrangères
    Par Bobby McGee dans le forum Java EE
    Réponses: 3
    Dernier message: 15/10/2003, 10h33
  2. Réponses: 2
    Dernier message: 11/07/2003, 18h24
  3. Problème avec memory mapping
    Par gemai dans le forum C
    Réponses: 13
    Dernier message: 04/07/2003, 09h50
  4. Editeur de MAP en delphi pour jeux directX
    Par PetitScorpion dans le forum DirectX
    Réponses: 5
    Dernier message: 09/07/2002, 18h47
  5. FFT(Fast Fourier Transform)
    Par IngBen dans le forum Traitement du signal
    Réponses: 6
    Dernier message: 23/05/2002, 16h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo