Более быстрая версия функции 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 ++. Это желательно?

Благодарю.

Ответы на вопрос(4)

Ваш ответ на вопрос