Je fais mes devoirs et j'ai encouragé le problème. Ma tâche consiste à écrire une fonction dans SciLab qui convertit l'image normale en sépia. Je dois utiliser un algorithme qui multiplie la couleur rouge par alpha et la couleur bleue par bêta où alpha> 1 et bêta < 1 et alpha + bêta = 2.Traitement d'image dans SciLab (image convergente en sépia)
Ceci est mon code. Pour une raison quelconque ces 2 lignes ne fonctionnent pas correctement:
//img2(i,j,2) = img(i,j);
//img2(i,j,3) = uint8(double(img(i,j))*beta);
function out = Ex2(im,alpha)
[h w d] = size(im);
img2 = uint16(zeros(h,w,d));
img = rgb2gray(im);
beta = 2-alpha;
for i=1:h
for j=1:w
img2(i,j,1) = uint16(double(img(i,j))*alpha); //condition if > 255
if img2(i,j,1) > 255 then
img2(i,j,1) = 255;
end
//img2(i,j,2) = img(i,j);
//img2(i,j,3) = uint8(double(img(i,j))*beta);
end
end
out = img2;
endfunction
nous donner des exemples d'alpha et bêta. Aussi, quoi avec le '//'? ce n'est pas des commentaires matlab. S'il vous plaît poster la vraie fonction matlab. Je suppose que cela peut être Scilab? –
Aussi, si je change le code pour être lisible MATLAB, cela fonctionne très bien, je gett très belles images sépia –
Ouais c'est SciLab, étiqueté aussi comme MatLab parce que je pense que ces 2 programmes sont très similaires un exemple de l'appel de cette fonction est Ex2 (myimage, 1.2); – Seoner