Pages: [1]   Go Down
Print
Author Topic: Problemi interpolazione bilineare  (Read 1609 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Alex_47
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 409


The spiral's King


« on: 25-11-2009, 23:23:57 »

Ragazzi ho un piccolo problemino con l'interpolazione bilineare
vi spiego meglio illustrandovi il codice...

Code:
%Bilinear

I = imread('angel.jpg');

figure,imshow(I);

[m,n] = size(I);

ii = 1;
jj = 1;


%posizioniamo valori già noti
for i = 1 : m
   
    for j = 1 : n
       
        Z(ii,jj) = I(i,j);
        jj = jj + 2;
       
    end
   
    ii = ii + 2;
    jj = 1;
end

figure,imshow(Z,[])

[m1,n1] = size(Z);

for i = 1 : m1
   
    for j = 1 : n1
       
        if  ( (mod(i,2) == 0) & (mod (j,2) ~= 0) )
           
            P = [i-1 j-1 (i-1)*(j-1) 1;...
                 i-1 j+1 (i-1)*(j+1) 1;...
                 i+1 j-1 (i+1)*(j-1) 1;...
                 i+1 j+1 (i+1)*(j+1) 1;...
                ];
           
                B = [Z(i-1,j-1) , Z(i-1,j+1) , Z(i+1,j-1) , Z(i+1,j+1)];
               
                C = inv(P) * B ;
               
                Z(i,j) = i*C(1,1) + j * C(2,1) + i*j*C(3,1) + C(4,1);
        end
    end
end

figure,imshow(Z,[])
           

il codice dovrebbe essere giusto , ma mi ritorna un errore su 

Code:
??? Attempted to access Z(1,0); index must be a positive integer or logical.

Error in ==> Replication at 43
                B = [Z(i-1,j-1) , Z(i-1,j+1) , Z(i+1,j-1) , Z(i+1,j+1)];

inoltre e normale che dopo il campionamento dei valori nel primo spezzone di codice

Code:

ii = 1;
jj = 1;


%posizioniamo valori già noti
for i = 1 : m
   
    for j = 1 : n
       
        Z(ii,jj) = I(i,j);
        jj = jj + 2;
       
    end
   
    ii = ii + 2;
    jj = 1;
end

 nella mia immaggine compaiono dei quadrati neri?
Logged
Pages: [1]   Go Up
Print
Jump to: