Matlab double vs uint8 для изображения в оттенках серого [0-255] - PullRequest
0 голосов
/ 02 декабря 2018

У меня есть серое изображение в Matlab.

Я заметил, что некоторые алгоритмы обработки изображений в Matlab будут затронуты, если я сохраню изображение в массиве 'double' или 'uint8'.Я понял, что использую «double», даже если «uint8» было достаточно.Кажется, это имеет значение при вызове алгоритмов обнаружения движения Matlab.

Это связано с представлением «двойных» чисел?Я знаю, что «вычисления с плавающей точкой имеют ошибку округления» из-за необходимости представлять число точно в 32/64 битах.

1 Ответ

0 голосов
/ 02 декабря 2018

uint8 вычисления имеют гораздо большую погрешность округления, чем double.

Вы видите, что MATLAB ожидает, что двойные изображения будут в диапазоне [0,1].Если ваши изображения имеют больший диапазон, в некоторых алгоритмах они могут оказаться обрезанными.

Кроме этого, ожидайте, что удвоение даст лучшие (более точные) ответы.uint8 вычисления могут быть быстрее, хотя это не всегда так.

...