Когда я реализую следующий код, я получаю проблему в значении M. Он дает 1 для всех значений M (i, j). Как я могу решить эту проблему ???Получение ошибки в следующем коде
img = rgb2gray(imread('Einstein.bmp'));
img1 = double(img);
M = double(zeros(size(img,1),size(img,2)));
for i=1:size(img,1)
for j=1:size(img,2)
M(i,j)=1+(double(exp(-img1(i,j))));
end
end
Проблема заключается в том, когда я пишу М (I, J) = (двойной (ехр (-img1 (I, J))));, тогда я получаю значения с плавающей запятой в M, но когда я пишу M (i, j) = 1 + (double (exp (-img1 (i, j))));, тогда я получаю все значения матрицы M как 1.
Пожалуйста, помогите мне.
Вы проверили значения в 'img1'? В стороне, в MATLAB, вам не нужны петли для такого рода расчетов. 'M = 1 + exp (-img1)' приведет к идентичному результату. – sebastian
вы можете даже записать его в одной строке: 'M = 1 + exp (-1 * double (rgb2gray (imread ('E.bmp'))));' – bla