Более быстрая версия функции dec2bin для преобразования многих элементов?
Я читаю файл растрового изображения и конвертируюкаждый значений RGB в диапазоне от 0 до 255 до двоичного.
Таким образом, растровое изображение 240 на 320 будет иметь 230400 значений RGB для преобразования. Первоначальная функция dec2bin была слишком медленной, поэтому я написал свою собственную, поскольку знаю, что мое значение всегда будет в диапазоне от 0 до 255.
Но прохождение значений 230400 все равно займет ок. 6 секунд на моей машине, и одноцветное растровое изображение займет около 2,3 секунды.
Есть ли способ ускорить процесс до 1 секунды или даже лучше 0,5 секунды, поскольку каждая мс считается для моего приложения?
Вот мой код:
function s = dec2bin_2(input)
if input == 255
s = [1;1;1;1;1;1;1;1];
return;
end
s = [0;0;0;0;0;0;0;0];
if input == 0
return;
end
if input >= 128
input = input - 128;
s(1) = 1;
if input == 0
return;
end
end
if input >= 64
input = input - 64;
s(2) = 1;
if input == 0
return;
end
end
if input >= 32
input = input - 32;
s(3) = 1;
if input == 0
return;
end
end
if input >= 16
input = input - 16;
s(4) = 1;
if input == 0
return;
end
end
if input >= 8
input = input - 8;
s(5) = 1;
if input == 0
return;
end
end
if input >= 4
input = input - 4;
s(6) = 1;,
if input == 0
return;
end
end
if input >= 2
input = input - 2;
s(7) = 1;
if input == 0
return;
else
s(8) = 1;
end
end
end
Я думал, что если я не смогу сделать это в MATLAB, то, возможно, я сделаю преобразование в C ++. Это желательно?
Благодарю.