Я хочу преобразовать матричный тип 256 * 256 uint8 в 256 * 256 матрицу типа double, но когда я использую im2double(), она дает мне 1 * 1 матрица типа double.im2double дает матрицу 1 * 1 при применении к матрице 256 * 256 в matlab R2014a
Я хочу сделать преобразование гаммы для своего изображения для этого, мне нужно использовать функцию мощности, которая в свою очередь требует от меня использовать матрицу типа double, потому что значение гаммы, которое будет вводить пользователь, будет иметь функцию двойного типа и мощности что он может работать, когда матрица и скаляр оба одного типа т.е. двойной
код выглядит следующим образом:
b=imread('cameraman.tif');
[m,n] = size(b);
c=input('enter value of c');
gamma=input('enter value of gamma');
I2 = im2double(b);
for i=1:m
for j=1:n
I2=c*power(I2(i,j),gamma);
end
end
imshow(I2,[]);
im2double все еще дает мне матрицу 1 * 1, и когда я использую функцию bsxfun, она дает эту ошибку: «Целые числа могут быть подняты только до положительных целых полномочий». после того, как я конвертирую, используя double, как и предложил в первой строке. Но ваше второе решение работает хорошо. Я не могу использовать функцию im2double, но в документации и других примерах в Интернете работает нормально. Любой намек на это. Спасибо за ан, хотя код начал работать. –