Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

coefficient de correlation bizarre



  1. #1
    ABN84

    coefficient de correlation bizarre


    ------

    bonjour,
    j'ai 5 images que je dois comparer à 1.
    j'affiche les images pour verifier qu'elles ne sont effectivement pas identique.
    je fais mon code matlab pour calculer la norme de chaque vecteur, le produit scalaire de chaque vecteur par le premier.
    par definition le coef de correlation est le cotion du produit scalaires par le produit des normes et là je trouve un coef identique pour toutes les images meme si leurs normes et leurs produits scalaires ont differents.
    je n'arrive pas à tomber sur la couile:
    Code:
    %***********************************
    %INIT
    %***********************************
    importfile signalbsb1.txt;
    importfile signalbsb2.txt;
    importfile signalbsb3.txt;
    importfile signalbsb4.txt;
    importfile signalbsba.txt;
    importfile signalbsbb.txt;
    
    signalbsb1=signalbsb1/100000;
    signalbsb2=signalbsb2/100000;
    signalbsb3=signalbsb3/100000;
    signalbsb4=signalbsb4/100000;
    signalbsba=signalbsba/100000;
    signalbsbb=signalbsbb/100000;
    
    norm_bord1=0;
    norm_bord2=0;
    norm_bord3=0;
    norm_bord4=0;
    norm_borda=0;
    norm_bordb=0;
    norm_bouc1=0;
    norm_bouc2=0;
    norm_bouc3=0;
    norm_bouc4=0;
    norm_bouca=0;
    norm_boucb=0;
    %***********************************
    %***********************************
    
    
    
    
    %***********************************
    %SCRIPT
    %***********************************
    
    %***********************************
    %MISE EN FORME DES DONNEES
    %***********************************
    for i=1:1152
        image1(i,:)=signalbsb1((i-1)*445+1:i*445);
        image2(i,:)=signalbsb2((i-1)*445+1:i*445);
        image3(i,:)=signalbsb3((i-1)*445+1:i*445);
        image4(i,:)=signalbsb4((i-1)*445+1:i*445);
        imagea(i,:)=signalbsba((i-1)*445+1:i*445);
        imageb(i,:)=signalbsbb((i-1)*445+1:i*445);
    end
    
    mat_bord1=image1(600:800,90:355);
    mat_bord2=image2(600:800,90:355);
    mat_bord3=image3(600:800,90:355);
    mat_bord4=image4(600:800,90:355);
    mat_borda=imagea(600:800,90:355);
    mat_bordb=imageb(600:800,90:355);
    
    mat_bouc1=image1(900:1000,90:355);
    mat_bouc2=image2(900:1000,90:355);
    mat_bouc3=image3(900:1000,90:355);
    mat_bouc4=image4(900:1000,90:355);
    mat_bouca=imagea(900:1000,90:355);
    mat_boucb=imageb(900:1000,90:355);
    
    for i=1:266
        vect_bord1((i-1)*201+1:i*201,1)=mat_bord1(:,i);
        vect_bord2((i-1)*201+1:i*201,1)=mat_bord2(:,i);
        vect_bord3((i-1)*201+1:i*201,1)=mat_bord3(:,i);
        vect_bord4((i-1)*201+1:i*201,1)=mat_bord4(:,i);
        vect_borda((i-1)*201+1:i*201,1)=mat_borda(:,i);
        vect_bordb((i-1)*201+1:i*201,1)=mat_bordb(:,i);
        
        
        vect_bouc1((i-1)*101+1:i*101,1)=mat_bouc1(:,i);
        vect_bouc2((i-1)*101+1:i*101,1)=mat_bouc2(:,i);
        vect_bouc3((i-1)*101+1:i*101,1)=mat_bouc3(:,i);
        vect_bouc4((i-1)*101+1:i*101,1)=mat_bouc4(:,i);
        vect_bouca((i-1)*101+1:i*101,1)=mat_bouca(:,i);
        vect_boucb((i-1)*101+1:i*101,1)=mat_boucb(:,i);
    end
    %***********************************
    %***********************************
    
    %***********************************
    %NORME
    %***********************************
    for i=1:53466
        norm_bord1=norm_bord1+sqrt(vect_bord1(i).*vect_bord1(i));
        norm_bord2=norm_bord2+sqrt(vect_bord2(i).*vect_bord2(i));
        norm_bord3=norm_bord3+sqrt(vect_bord3(i).*vect_bord3(i));
        norm_bord4=norm_bord4+sqrt(vect_bord4(i).*vect_bord4(i));
        norm_borda=norm_borda+sqrt(vect_borda(i).*vect_borda(i));
        norm_bordb=norm_bordb+sqrt(vect_bordb(i).*vect_bordb(i));
    end
        
    for i=1:26866
        norm_bouc1=norm_bouc1+sqrt(vect_bouc1(i).*vect_bouc1(i));
        norm_bouc2=norm_bouc2+sqrt(vect_bouc2(i).*vect_bouc2(i));
        norm_bouc3=norm_bouc3+sqrt(vect_bouc3(i).*vect_bouc3(i));
        norm_bouc4=norm_bouc4+sqrt(vect_bouc4(i).*vect_bouc4(i));
        norm_bouca=norm_bouca+sqrt(vect_bouca(i).*vect_bouca(i));
        norm_boucb=norm_boucb+sqrt(vect_boucb(i).*vect_boucb(i));
    end
    %***********************************
    %***********************************
    
    %***********************************
    %PRODUIT SCALAIRE
    %***********************************
    for i=1:53466
        ps_bord2=norm_bord2+(vect_bord1(i).*vect_bord2(i));
        ps_bord3=norm_bord3+(vect_bord1(i).*vect_bord3(i));
        ps_bord4=norm_bord4+(vect_bord1(i).*vect_bord4(i));
        ps_borda=norm_borda+(vect_bord1(i).*vect_borda(i));
        ps_bordb=norm_bordb+(vect_bord1(i).*vect_bordb(i));
    end
       
    for i=1:26866
        ps_bouc2=norm_bouc2+(vect_bouc1(i).*vect_bouc2(i));
        ps_bouc3=norm_bouc3+(vect_bouc1(i).*vect_bouc3(i));
        ps_bouc4=norm_bouc4+(vect_bouc1(i).*vect_bouc4(i));
        ps_bouca=norm_bouca+(vect_bouc1(i).*vect_bouca(i));
        ps_boucb=norm_boucb+(vect_bouc1(i).*vect_boucb(i));
    end
    %***********************************
    %***********************************
    
    %***********************************
    %COEFFICIENT DE CORRELATION
    %***********************************
    % la bouteille 1 est suppoée bonne et donc prise comme reference %
    cor_bord2=ps_bord2/(norm_bord2*norm_bord1);
    cor_bord3=ps_bord3/(norm_bord3*norm_bord1);
    cor_bord4=ps_bord4/(norm_bord4*norm_bord1);
    cor_borda=ps_borda/(norm_borda*norm_bord1);
    cor_bordb=ps_bordb/(norm_bordb*norm_bord1);
    
    
    cor_bouc2=ps_bouc2/(norm_bouc2*norm_bouc1);
    cor_bouc3=ps_bouc3/(norm_bouc3*norm_bouc1);
    cor_bouc4=ps_bouc4/(norm_bouc4*norm_bouc1);
    cor_bouca=ps_bouca/(norm_bouca*norm_bouc1);
    cor_boucb=ps_boucb/(norm_boucb*norm_bouc1);
    %***********************************
    %***********************************
    
    %***********************************
    %AFFICHAGE
    %***********************************
    % colormap(gray);
    % image(mat_bord1*256);
    % image(mat_bord2*256);
    % image(mat_bord3*256);
    % image(mat_bord4*256);
    % image(mat_borda*256);
    % image(mat_bordb*256);
    % 
    % image(mat_bouc1*256);
    % image(mat_bouc2*256);
    % image(mat_bouc3*256);
    % image(mat_bouc4*256);
    % image(mat_bouca*256);
    % image(mat_boucb*256);
    %***********************************
    %***********************************
    
    %***********************************
    %***********************************
    merci

    -----
    Dernière modification par ABN84 ; 08/12/2008 à 00h38.
    "Engineering is the art of making what you want from what you get"

  2. Publicité
  3. #2
    invite986312212
    Invité

    Re : coefficient de correlation bizarre

    laisse tomber matlab.

  4. #3
    ABN84

    Re : coefficient de correlation bizarre

    merci.
    ça m'aide beaucoup
    Citation Envoyé par einstein Voir le message
    bonjour,
    j'ai 5 images que je dois comparer à 1.
    j'affiche les images pour verifier qu'elles ne sont effectivement pas identique.
    je fais mon code matlab pour calculer la norme de chaque vecteur, le produit scalaire de chaque vecteur par le premier.
    par definition le coef de correlation est le cotion du produit scalaires par le produit des normes et là je trouve un coef identique pour toutes les images meme si leurs normes et leurs produits scalaires ont differents.
    je n'arrive pas à tomber sur la couile:
    Code:
    %***********************************
    %INIT
    %***********************************
    importfile signalbsb1.txt;
    importfile signalbsb2.txt;
    importfile signalbsb3.txt;
    importfile signalbsb4.txt;
    importfile signalbsba.txt;
    importfile signalbsbb.txt;
    
    signalbsb1=signalbsb1/100000;
    signalbsb2=signalbsb2/100000;
    signalbsb3=signalbsb3/100000;
    signalbsb4=signalbsb4/100000;
    signalbsba=signalbsba/100000;
    signalbsbb=signalbsbb/100000;
    
    norm_bord1=0;
    norm_bord2=0;
    norm_bord3=0;
    norm_bord4=0;
    norm_borda=0;
    norm_bordb=0;
    norm_bouc1=0;
    norm_bouc2=0;
    norm_bouc3=0;
    norm_bouc4=0;
    norm_bouca=0;
    norm_boucb=0;
    %***********************************
    %***********************************
    
    
    
    
    %***********************************
    %SCRIPT
    %***********************************
    
    %***********************************
    %MISE EN FORME DES DONNEES
    %***********************************
    for i=1:1152
        image1(i,:)=signalbsb1((i-1)*445+1:i*445);
        image2(i,:)=signalbsb2((i-1)*445+1:i*445);
        image3(i,:)=signalbsb3((i-1)*445+1:i*445);
        image4(i,:)=signalbsb4((i-1)*445+1:i*445);
        imagea(i,:)=signalbsba((i-1)*445+1:i*445);
        imageb(i,:)=signalbsbb((i-1)*445+1:i*445);
    end
    
    mat_bord1=image1(600:800,90:355);
    mat_bord2=image2(600:800,90:355);
    mat_bord3=image3(600:800,90:355);
    mat_bord4=image4(600:800,90:355);
    mat_borda=imagea(600:800,90:355);
    mat_bordb=imageb(600:800,90:355);
    
    mat_bouc1=image1(900:1000,90:355);
    mat_bouc2=image2(900:1000,90:355);
    mat_bouc3=image3(900:1000,90:355);
    mat_bouc4=image4(900:1000,90:355);
    mat_bouca=imagea(900:1000,90:355);
    mat_boucb=imageb(900:1000,90:355);
    
    for i=1:266
        vect_bord1((i-1)*201+1:i*201,1)=mat_bord1(:,i);
        vect_bord2((i-1)*201+1:i*201,1)=mat_bord2(:,i);
        vect_bord3((i-1)*201+1:i*201,1)=mat_bord3(:,i);
        vect_bord4((i-1)*201+1:i*201,1)=mat_bord4(:,i);
        vect_borda((i-1)*201+1:i*201,1)=mat_borda(:,i);
        vect_bordb((i-1)*201+1:i*201,1)=mat_bordb(:,i);
        
        
        vect_bouc1((i-1)*101+1:i*101,1)=mat_bouc1(:,i);
        vect_bouc2((i-1)*101+1:i*101,1)=mat_bouc2(:,i);
        vect_bouc3((i-1)*101+1:i*101,1)=mat_bouc3(:,i);
        vect_bouc4((i-1)*101+1:i*101,1)=mat_bouc4(:,i);
        vect_bouca((i-1)*101+1:i*101,1)=mat_bouca(:,i);
        vect_boucb((i-1)*101+1:i*101,1)=mat_boucb(:,i);
    end
    %***********************************
    %***********************************
    
    %***********************************
    %NORME
    %***********************************
    for i=1:53466
        norm_bord1=norm_bord1+sqrt(vect_bord1(i).*vect_bord1(i));
        norm_bord2=norm_bord2+sqrt(vect_bord2(i).*vect_bord2(i));
        norm_bord3=norm_bord3+sqrt(vect_bord3(i).*vect_bord3(i));
        norm_bord4=norm_bord4+sqrt(vect_bord4(i).*vect_bord4(i));
        norm_borda=norm_borda+sqrt(vect_borda(i).*vect_borda(i));
        norm_bordb=norm_bordb+sqrt(vect_bordb(i).*vect_bordb(i));
    end
        
    for i=1:26866
        norm_bouc1=norm_bouc1+sqrt(vect_bouc1(i).*vect_bouc1(i));
        norm_bouc2=norm_bouc2+sqrt(vect_bouc2(i).*vect_bouc2(i));
        norm_bouc3=norm_bouc3+sqrt(vect_bouc3(i).*vect_bouc3(i));
        norm_bouc4=norm_bouc4+sqrt(vect_bouc4(i).*vect_bouc4(i));
        norm_bouca=norm_bouca+sqrt(vect_bouca(i).*vect_bouca(i));
        norm_boucb=norm_boucb+sqrt(vect_boucb(i).*vect_boucb(i));
    end
    %***********************************
    %***********************************
    
    %***********************************
    %PRODUIT SCALAIRE
    %***********************************
    for i=1:53466
        ps_bord2=norm_bord2+(vect_bord1(i).*vect_bord2(i));
        ps_bord3=norm_bord3+(vect_bord1(i).*vect_bord3(i));
        ps_bord4=norm_bord4+(vect_bord1(i).*vect_bord4(i));
        ps_borda=norm_borda+(vect_bord1(i).*vect_borda(i));
        ps_bordb=norm_bordb+(vect_bord1(i).*vect_bordb(i));
    end
       
    for i=1:26866
        ps_bouc2=norm_bouc2+(vect_bouc1(i).*vect_bouc2(i));
        ps_bouc3=norm_bouc3+(vect_bouc1(i).*vect_bouc3(i));
        ps_bouc4=norm_bouc4+(vect_bouc1(i).*vect_bouc4(i));
        ps_bouca=norm_bouca+(vect_bouc1(i).*vect_bouca(i));
        ps_boucb=norm_boucb+(vect_bouc1(i).*vect_boucb(i));
    end
    %***********************************
    %***********************************
    
    %***********************************
    %COEFFICIENT DE CORRELATION
    %***********************************
    % la bouteille 1 est suppoée bonne et donc prise comme reference %
    cor_bord2=ps_bord2/(norm_bord2*norm_bord1);
    cor_bord3=ps_bord3/(norm_bord3*norm_bord1);
    cor_bord4=ps_bord4/(norm_bord4*norm_bord1);
    cor_borda=ps_borda/(norm_borda*norm_bord1);
    cor_bordb=ps_bordb/(norm_bordb*norm_bord1);
    
    
    cor_bouc2=ps_bouc2/(norm_bouc2*norm_bouc1);
    cor_bouc3=ps_bouc3/(norm_bouc3*norm_bouc1);
    cor_bouc4=ps_bouc4/(norm_bouc4*norm_bouc1);
    cor_bouca=ps_bouca/(norm_bouca*norm_bouc1);
    cor_boucb=ps_boucb/(norm_boucb*norm_bouc1);
    %***********************************
    %***********************************
    
    %***********************************
    %AFFICHAGE
    %***********************************
    % colormap(gray);
    % image(mat_bord1*256);
    % image(mat_bord2*256);
    % image(mat_bord3*256);
    % image(mat_bord4*256);
    % image(mat_borda*256);
    % image(mat_bordb*256);
    % 
    % image(mat_bouc1*256);
    % image(mat_bouc2*256);
    % image(mat_bouc3*256);
    % image(mat_bouc4*256);
    % image(mat_bouca*256);
    % image(mat_boucb*256);
    %***********************************
    %***********************************
    
    %***********************************
    %***********************************
    merci
    "Engineering is the art of making what you want from what you get"

  5. #4
    invite986312212
    Invité

    Re : coefficient de correlation bizarre

    avec R, si im1 et im2 sont tes images (supposées de mêmes dimensions), pour avoir la corrélation, tu fais juste:
    cor(as.vector(im1),as.vector(i m2))

    1 ligne de code contre quelques dizaines avec matlab et une erreur que tu n'arrives pas à trouver. Tires-en les conclusions que tu voudras.

  6. #5
    ABN84

    Re : coefficient de correlation bizarre

    1 ligne de code contre quelques dizaines avec matlab
    si tu veux. là n'est pas le probleme. j'ai un probleme, j'ai un outil, je dois resoudre ce probleme avec cet outil.
    et contrairement à ce que tu dis, la corellation sous matlab se fait en 3 lignes. tout le reste c'est la mise en forme des données: faire passer les points à traiter de 53000 à 5000
    "Engineering is the art of making what you want from what you get"

  7. A voir en vidéo sur Futura
  8. #6
    ABN84

    Re : coefficient de correlation bizarre

    voici le code épuré ne presentant que la partie algorithmique qui me pose probleme:
    Code:
    mat_bord1=image1(600:800,90:355);
    mat_bord2=image2(600:800,90:355);
    mat_bord3=image3(600:800,90:355);
    mat_bord4=image4(600:800,90:355);
    
    for i=1:266
        vect_bord1((i-1)*201+1:i*201,1)=mat_bord1(:,i);
        vect_bord2((i-1)*201+1:i*201,1)=mat_bord2(:,i);
        vect_bord3((i-1)*201+1:i*201,1)=mat_bord3(:,i);
        vect_bord4((i-1)*201+1:i*201,1)=mat_bord4(:,i);
    end
    %***********************************
    %***********************************
    
    %***********************************
    %NORME
    %***********************************
    i=1:53466;
        norm_bord1=sum(vect_bord1(i).*vect_bord1(i));
        norm_bord2=sum(vect_bord2(i).*vect_bord2(i));
        norm_bord3=sum(vect_bord3(i).*vect_bord3(i));
        norm_bord4=sum(vect_bord4(i).*vect_bord4(i));
    
    norm_bord1=sqrt(norm_bord1);
    norm_bord2=sqrt(norm_bord2);
    norm_bord3=sqrt(norm_bord3);
    norm_bord4=sqrt(norm_bord4);
    %***********************************
    %***********************************
    
    %***********************************
    %PRODUIT SCALAIRE
    %***********************************
    for i=1:53466
        ps_bord2=norm_bord2+(vect_bord1(i).*vect_bord2(i));
        ps_bord3=norm_bord3+(vect_bord1(i).*vect_bord3(i));
        ps_bord4=norm_bord4+(vect_bord1(i).*vect_bord4(i));
    end
    %***********************************
    %***********************************
    
    %***********************************
    %COEFFICIENT DE CORRELATION
    %***********************************
    % la bouteille 1 est suppoée bonne et donc prise comme reference %
    cor_bord2=ps_bord2/(norm_bord2*norm_bord1);
    cor_bord3=ps_bord3/(norm_bord3*norm_bord1);
    cor_bord4=ps_bord4/(norm_bord4*norm_bord1);
    %***********************************
    %***********************************
    
    %***********************************
    %AFFICHAGE
    %***********************************
    colormap(gray);
    image(mat_bord1*256);
    % image(mat_bord2*256);
    % image(mat_bord3*256);
    % image(mat_bord4*256);
    %***********************************
    %***********************************
    
    %***********************************
    %***********************************
    merci
    "Engineering is the art of making what you want from what you get"

  9. Publicité
  10. #7
    ABN84

    Re : coefficient de correlation bizarre

    Resolu:
    le problème résidait dans le fait que j'exprimais le coefficient de corrélation directement sur les vecteurs sans les avoir centré auparavant.
    "Engineering is the art of making what you want from what you get"

Sur le même thème :

Discussions similaires

  1. Réponses: 11
    Dernier message: 27/08/2009, 11h01
  2. Coefficient de correlation
    Par 24.9 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 14/02/2008, 14h31
  3. Bizarre, bizarre !!! (article Ouest-France)
    Par scopy dans le forum Matériel astronomique et photos d'amateurs
    Réponses: 15
    Dernier message: 15/10/2007, 20h44
  4. formule bizarre, vraiment bizarre
    Par gruni1 dans le forum Chimie
    Réponses: 5
    Dernier message: 07/01/2006, 23h31