2013-08-01 2 views
0

При чтении изображения входы, рассматриваемые для полифита, различны. один - «uint8», а другой - «double» (их размер одинаковый, < 1x384>) Не могли бы вы дать мне подсказку, как я могу это решить?polyfit в matlab с различными типами данных

его ошибки показаны ниже в то время как я не использовал TIMES в polyfit: с помощью

Ошибка * MTIMES не полностью поддерживается для целых классов. По крайней мере один вход должен быть скалярным. Чтобы вычислить поэтапное ВРЕМЯ, используйте TIMES (. *).

Ошибка в полифите p = R (Q '* y); % То же, что и p = V \ y;

Как его преобразовать в unit8? (В противном случае, его результат не подходит для моего сценария)

+0

Этот вопрос требует пояснений. Опубликуйте более подробную информацию об ошибках и кодах. –

+0

Вы можете конвертировать между типами данных, например, с помощью 'double' или' unit8'. –

+0

Можете взглянуть на это: http://stackoverflow.com/questions/17924743/problems-with-imshow-and-rgb2gray-in-matlab/17930485#17930485 –

ответ

0

Для преобразования типа двойной в Uint8 вы можете сделать следующее:

b = [1:10]; % <-- type double 
a = uint8(b); % <-- convert to uint8 

whos a 
    Name  Size     Bytes Class 

    a   1x1       1 uint8 array 

Grand total is 1 element using 1 bytes 

Чтобы сделать обратное:

a = uint8([1:10]); % <-- convert to uint8 
b = double(a); % <-- type double 

whos b 
    Name  Size     Bytes Class 

    b   1x10      80 double array 

Grand total is 10 elements using 80 bytes 

Переменные типа uint8 представляют собой целые числа без знака (> = 0).

Некоторые операции с ними не работают, такие как A\b.

Перед тем, как ваши операции с входными изображениями, конвертировать их в два раз следующим образом:

im_double = double(im_uint8); 

где im_uint8 является исходным изображением.

Смежные вопросы