watermarking(tatouage-marquage)image numerique
Répondre à la discussion
Affichage des résultats 1 à 16 sur 16

watermarking(tatouage-marquage)image numerique



  1. #1
    invitec925f48a

    watermarking(tatouage-marquage)image numerique


    ------

    je travaille sur l'algorithme de koch et zhao
    voici une description fomelle des algorithmes d'insertion d'une marque

    1\.Soit une séquence de k bits(b1,......,bk) à cacher dans l’image
    2\.Sélectionner dans l’image (selon une clé secrète) k blocs B(B1,.....Bk)de taille 8x8

    3-\Calculer les coefficients DCT (a11,.....,a88)de chaque bloc sélectionné
    4-\Pour i allant de 1 à k :
    soient (akl)et (amn)deux des coefficientsDCT du bloc Bi,et bi le bit a cacher
    -si {(bi=1)et (akl)i>(amn)i }
    {(bi=0)et (akl)i<(amn)i } alors ne rien faire
    sinon modifier les valeurs de (akl)i et (amn)i pour que la relation précédente soit vérifiée
    5.\Calculer la DCT inverse à partir des valeurs ainsimodifiées afin
    d’obtenir l’image marquée, et revenir dans le domaine spatial
    si besoin est .
    voila mon problème est que j'ai pas compré
    dans la 2eme étape et la 4 eme étape moi qui choisi les deux coefficients akl et amn pour quoi en fait le teste akl>amn ou l'inverse
    sinon modifier les valeurs de (akl)i et (amn)i pour que la relation précédente soit vérifiée quelle relation
    pouvez vous m'aider svp
    si vous avez des documentations plus detaillé sur l'algorithme meme des programmes (n'importe quelle langauge matlab ou c )

    -----

  2. #2
    invitec925f48a

    Re : watermarking(tatouage-marquage)image numerique

    svp
    j'ai besoin de repense

  3. #3
    invitec925f48a

    Re : watermarking(tatouage-marquage)image numerique

    Pouvez-vous m'aider svp
    Urgentes

  4. #4
    invitec925f48a

    tatouge

    je travaille sur le tatouge d'image est je dois faire comme premier etape la devision de l'image en block de 8x8
    c sa mon code pour un image de taille 256x256 il est correct mais le probleme qu'on j'utilise un autre image(pout.tif) de dimision ( 291 x240) il affiche un errur

    Code:
    I1 = imread('cameraman.tif');
    bs = [8 8] % size of the block
    
    % % step 1 divide into blocks
       szM = size(I1) 
       nb = ceil(szM ./ bs) % number of blocks in each dimension
     C = mat2cell(I1,repmat(bs(1),1,nb(1)), repmat(bs(2),1,nb(2)))%mat2cell=matrice to cellule this exB = repmat(eye(2),3,4)explique repmat
       
    c1=C{15,16}
    c sa mon code pour un image de taille 256x256 il est correct mais le probleme qu'on j'utilise un autre image(pout.tif) de dimision ( 291 x240) il affiche un erreur
    ??? Error using ==> mat2cell at 116
    Input arguments, D1 through D2, must sum to each dimension of
    the input matrix size, [291 240].

    Error in ==> firststep at 36
    C = mat2cell(I1,repmat(bs(1),1,nb( 1)),
    repmat(bs(2),1,nb(2)))%mat2cel l=matrice to cellule this exB =
    repmat(eye(2),3,4)explique repmat
    alors il faut mettre ce code compatible pour tout les images de format.tif svp aide moi




    Rappel de la charte que tu as acceptée en t'inscrivant ici:

    La courtoisie est de rigueur sur ce forum : pour une demande de renseignements bonjour et merci devraient être des automatismes.
    Merci d"en tenir compte à l'avenir

    Pour la modération,

    yoda1234.
    Dernière modification par yoda1234 ; 07/03/2011 à 12h05.

  5. A voir en vidéo sur Futura
  6. #5
    Jack
    Modérateur

    Re : watermarking(tatouage-marquage)image numerique

    J'ai fusionné les deux sujets, vu qu'il s'agit visiblement du même problème.

  7. #6
    invitea29b3af3

    Re : watermarking(tatouage-marquage)image numerique

    Salut

    ton problème c'est qu'il faut que nb(1)*8 = le nombre de lignes de ton image et nb(2)*8 le nombre de colonnes, ce qui n'est pas le cas. Donc soit faut "croper" (ou rogner en francais) ton image ou la "padder" (la prolonger). 240 est un multiple de 8 donc c'est bon, mais 291 pas. Donc soit tu pré-traite ton image en la cropant:
    Code:
    I1=I1(1:288,:);
    où 288 c'est simplement 36*8 c'est à dire nb(1)*8 si tu avait utiliser la fonction floor au lieu de ceil pour nb. Ou alors tu la pad:
    Code:
    z=zeros(5,240);
    I1=[I1;z];
    où 5 n'est autre que nb(1)*8-291 si tu utilises ceil pour calculer nb. Tu peux aussi utiliser la fonction padarray pour pader en la padant par exemple de facon symétrique.

  8. #7
    invitec925f48a

    Re : watermarking(tatouage-marquage)image numerique

    merci fiatlux pour votre repnse mais le code ne marche pas
    z=zeros(5,240);
    I1=[I1;z];
    il faut mettre le code compatible pour tous les image (tous les tailles )

    Peut expliquer plus stp

  9. #8
    invitea29b3af3

    Re : watermarking(tatouage-marquage)image numerique

    Je t'ai mis l'explication d'où venait le 5:
    où 5 n'est autre que nb(1)*8-291 si tu utilises ceil pour calculer nb
    Avec d'autres images tu adaptes. Pour croper tu vérifies si la largeur et la hauteur de l'image sont des multiples de 8 ou non avec la fonction mod. Genre mod(size(I1,2),8) te donne le reste de la division de la largeur (=nb de colonnes) de ton image par 8. Si ca renvoit 0 c'est un multiple de 8, sinon ca renvoit un nombre entre 1 et 7 qu'on appelle A par exemple (donc largeur-A est multiple de 8), tu cropes la largeur avec I1=I1(:,1:size(I1,2)-A). Pour la hauteur c'est pareil.

  10. #9
    invitec925f48a

    Re : watermarking(tatouage-marquage)image numerique

    meryam

    I am doing a project in Digital watermarking(koch and zhao ) using DCT
    in Matlab my steps of program are
    1-read image
    2- application DCT on image
    3-selections blocks(B1,B2)from image
    4-selction 2 coefficients from each block
    5-put conditions to modify the to coefficien............
    .............................. .........
    i do that on my code but i stop in selection the 2 coefficient i don't
    know how to do

    I am looking for some help in selection two coeffiecients from each
    block separately. I need to access into subblocks of size 8x8 and
    have to find the coefficients to modify it
    I cannot access to pixels in the block [8x8]
    help me with some working code, it will be greatful
    thankkkkks this my @ mail if u want to send
    codes :breath1ess@hotmail.com
    this my code
    Code:
    I = imread('cameraman.tif'); 
    % appliquer la dct 
    I = im2double(I); 
    T = dctmtx(8); 
    dct = @(x)T * x * T'; 
    I1 = blkproc(I,[8 8],dct); 
    bs = [8 8] 
    %step 1 divide into blocks 
      szM = size(I1) 
       nb = ceil(szM ./ bs) % number of blocks in each dimension 
     C = mat2cell(I1,repmat(bs(1),1,nb(1)), repmat(bs(2),1,nb(2))) 
    %mat2cell=matrice to cellule this exB = repmat(eye(2),3,4)explique 
    repmat 
    c1=C{15,16} 
    c2=C{8,9}

  11. #10
    invitec925f48a

    Re : watermarking(tatouage-marquage)image numerique

    merciiiiiiiiii bien fiatlux
    j'ssayé et réussi merciiiiiiiiiiiiiiiii

  12. #11
    invitec925f48a

    Re : watermarking(tatouage-marquage)image numerique

    j'ai un autre probleme comment acceder aux pixel d'un bloc 8x8 sous matlab le code Il est indiqué ci-dessus
    merci a l'avance

  13. #12
    invitea29b3af3

    Re : watermarking(tatouage-marquage)image numerique

    par exemple le pixel (3,5) d'un bloc situé en (27,32) dans une cellule:
    Code:
    c{27,32}(3,5)

  14. #13
    invitec925f48a

    Re : watermarking(tatouage-marquage)image numerique

    Vraiment je sais pas comment exprimer ma gratitude à vous
    Je t'aime merciiiiiiiiiii FiAtLux
    meryam

  15. #14
    invitea29b3af3

    Re : watermarking(tatouage-marquage)image numerique

    C'est rien

  16. #15
    invitec925f48a

    Re : watermarking(tatouage-marquage)image numerique

    slt tt le monde j'ai fait ce programme qui fait le changement de chaque coefficents DCT et je trouve le PSNR=299.2761 malgré j'ai changé les coefficient plusieurs fois des fois j'ajoute un 1 des fois je fais le produit des cof*9 la devisionmais aucune changement de PSNR
    c sa mon code
    Code:
    I = imread('cameraman.tif');
    subplot 221,imshow(I)  ;title('image originale')
    % faire le crroping de l'image 
    L=mod(size(I,1),8) 
    H=mod(size(I,2),8) 
    I=I(1:size(I,1)-L,:);
    I=I(:,1:size(I,2)-H);
    newsize = size(I)
    % appliquer la dct 
    I = im2double(I);
    T = dctmtx(8);
    dct = @(x)T * x * T';
    I1 = blkproc(I,[8 8],dct);
    subplot 222,imshow(I1)  ;title('image DCT')
    bs = [8 8]    %bloc size
    %step 1 divide into blocks
      szM = size(I1) 
       nb = ceil(szM ./ bs) % number of blocks in each dimension
     C = mat2cell(I1,repmat(bs(1),1,nb(1)), repmat(bs(2),1,nb(2)));
    
     c=C{1,1}
     nbl=nb(1)%numero de blocs par ligne
     nbc=nb(2)%numero de blocs par colonnes
    %la boucle qui permet de changer la valeur des coefficients%%%
    
    for ii=1:nbl
       for jj=1:nbc
     c=C{ii,jj}
     mat=c
    
    
    ML=size(mat,1) %Row of logo
    NC=size(mat,2)
    for i=1:ML                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
        for j=1:NC
           cof=C{ii,jj}(i,j);
           cof=cof+1;
        cof=round(10^5*x)/10^5;
        end
    end
    
    
       end
    end
    subplot 223,imshow(I1)  ;title('image MODIFIERS LES COEFFICIENTS DCT')
    %ici je veux adffiche l'image avec le modification  comment faire 
       invdct = @(x)T' * x * T;
      I2 = blkproc(I1,[8 8],invdct); 
    subplot 224,imshow( I2)  ;title('image APRES IDCT')
    %%%% calcule de PSNR%%%%
    E=I-I2;
    E=E.^2;
    SUM=sum (sum(E));
    EQM=SUM/(size(I,1)*size(I,2))
    PSNR=10*(log(1^2/EQM)/log(10))
    merci a tout ceux aui ont perdue du temps à lire mes postes dans l'espoir m'aide

  17. #16
    invitec925f48a

    Re : watermarking(tatouage-marquage)image numerique

    j'ai essayeé de faire le watermarking des image numerique mais j'ai un problème de comprendre la clé c'est quoi key c'est veux avey des DOC ou des codes sur la meniere de creation d'un clé secret c'est vous plait aide moi et merci a tous a l'avance

Discussions similaires

  1. [Brun] Vagues dans image numérique
    Par invite2b08d1dc dans le forum Dépannage
    Réponses: 0
    Dernier message: 24/06/2008, 09h57
  2. Tatouage au bleu de méthylène...
    Par invite0e531cfc dans le forum Santé et médecine générale
    Réponses: 4
    Dernier message: 21/04/2008, 15h20
  3. Tv Sony KV-28FX60B, image numérique brouillée! chassis AE-5
    Par invite431d3c0b dans le forum Dépannage
    Réponses: 2
    Dernier message: 18/06/2006, 20h15