Как я могу преобразовать изображение в безопасную веб-карту цветов в MATLAB? - PullRequest
3 голосов
/ 17 марта 2011

Я хочу конвертировать изображения в безопасные для сети цвета, используя MATLAB. Есть ли предопределенная функция для этого? Если нет, то каким должен быть мой первый шаг к началу?

Ответы [ 2 ]

3 голосов
/ 17 марта 2011

Ashish имеет правильный подход, но вам может показаться утомительным получение всех этих значений с веб-страницы и в карту, которую вы можете использовать.У вас есть несколько вариантов создания карты ...

Один из вариантов - получить источник страницы, используя функцию URLREAD , и проанализировать нужные вам числа, используя функцию REGEXP («Он только что предложил синтаксический анализ HTML с помощью регулярного выражения ?!» Да, я сделал. Что я могу сказать? Я одиночка, Дотти. Бунтарь.):

mapURL = 'http://en.wikipedia.org/wiki/Web_colors#Web-safe_colors';
urlText = urlread(mapURL);
matchExpr = ['<td style="background: #\w{3};">' ...
             '(?:<u>\*)?(\w{3})(?:\*</u>)?</td>'];
colorID = regexp(urlText,matchExpr,'tokens');
colorID = char([colorID{:}]);
[~,webSafeMap] = ismember(colorID,'0369CF');
webSafeMap = (webSafeMap-1)./5;

Однако, после того, как я сделал выше, я понял, что есть результирующая правильная структура в результирующих веб-безопасных значениях цветовой карты.Это означает, что вы можете на самом деле игнорировать все вышеперечисленное и создавать карту самостоятельно, используя функции REPMAT и KRON :

colorValues = (0:0.2:1).';  %'
webSafeMap = [repmat(colorValues,36,1) ...
              kron(colorValues,ones(36,1)) ...
              repmat(kron(colorValues,ones(6,1)),6,1)];

И тогда вы можете легко перекраситьскажем, изображение RGB с использованием функций RGB2IND и IND2RGB .Например:

imageRGB = imread('peppers.png');  %# Load a built-in image
imageRGB = ind2rgb(rgb2ind(imageRGB,webSafeMap),webSafeMap);
imshow(imageRGB);

A web-safe version of peppers.png

3 голосов
/ 17 марта 2011

Посмотрите на синтаксис X = rgb2ind(RGB,MAP): http://www.mathworks.com/help/techdoc/ref/rgb2ind.html

http://en.wikipedia.org/wiki/Web_colors#Web-safe_colors, чтобы определить требуемую MAP.

...