Je pense que votre problème est que imread
renvoie une matrice de type uint8
. Pour appliquer log
, vous devez le convertir en double
. Il y a au moins 2 façons de le faire, un intégré, et un de SIVP:
clc;
clear;
im = imread("d:\Attila\PROJECTS\Scilab\Stackoverflow\mixer_crop.jpg");
//imshow(im);
disp(typeof(im(:,:,1)),"Original type:");
//use double
M = double(im(:,:,1));
disp(typeof(M),"Modified type:");
result=log(M);
//imshow(uint8(M));
//use im2double
M2 = im2double(im);
disp(typeof(M2(:,:,1)),"Modified type 2:");
result=log(M2(:,:,1));
//imshow(im2uint8(M2));
assurez-vous que votre image est convertie en échelle de gris –
Non, je dois obtenir le résultat du journal pour les trois canaux RVB – user7417788
Quelle est l'erreur que vous obtenez? Peut-être que vous utilisez une fonction de log qui ne prend pas une matrice de valeurs juste un scalaire? aussi lorsque vous utilisez le journal vous devez vous assurer que vous n'avez pas de zéros dans l'image parce que log (0) = undifine donc mieux faire log (uk (:,:, 1) + ones (:, :)) –