Pages: [1]   Go Down
Print
Author Topic: [Matlab] RGB -> HVC  (Read 1090 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Poteto
Matricola
*
Offline Offline

Posts: 66


« on: 17-02-2014, 18:22:49 »

Dopo diverse ricerche riguardo lo spazio di colori HVC (Hue Value Chroma) o Sistema Munsell dei colori ho trovato l'algoritmo per la conversione da RGB, ho quindi provato ad implementarlo in matlab con risultati incerti.

L'algoritmo:
http://i.imgur.com/2uZ9EKn.jpg

La mia implementazione Matlab:
Code:
function img = rgb2hvc(image)

image = double(image);
A = [0.620 0.178 0.204; 0.299 0.587 0.114; 0 0.056 0.942];

for i = 1:size(image,1)
    for j = 1:size(image,2)
        rgb = [image(i,j,1); image(i,j,2); image(i,j,3)];
        xyz = (A)*rgb;
        x = xyz(1,1);
        y = xyz(2,1);
        z = xyz(3,1);
        H1 = funzione_u(x) - funzione_u(y);
        H2 = funzione_u(z) - funzione_u(y);
        H3 = funzione_u(y);
        M1 = H1;
        M2 = 0.4*H2;
        H_ = atan2(M2,M1);
        S1 = M1*(8.88+0.966*cos(H_));
        S2 = M2*(8.025+2.558*cos(H_));
        H = atan2(S2,S1);
        V = H3;
        C = sqrt(S1^2+S2^2);
        image(i,j,1) = H;
        image(i,j,2) = V;
        image(i,j,3) = C;
    end
end
img = image;
end


function y = funzione_u(u)
    y = (18.51*u)/(u+17.58*(1 + (5.146*u)/(u+30.07)));   
end

Qualcuno che ha provato (e riuscito) ad implementarlo correttamente?
Per quanto riguarda invece da HVC a RGB?
Logged
Pages: [1]   Go Up
Print
Jump to: