我想使用MATLAB将图像转换为Web安全颜色。是否有预定义的函数可供使用?如果没有,我的第一步应该是什么?
我想使用MATLAB将图像转换为Web安全颜色。是否有预定义的函数可供使用?如果没有,我的第一步应该是什么?
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;
colorValues = (0:0.2:1).'; %'
webSafeMap = [repmat(colorValues,36,1) ...
kron(colorValues,ones(36,1)) ...
repmat(kron(colorValues,ones(6,1)),6,1)];
然后你可以使用RGB2IND和IND2RGB函数轻松地重新着色RGB图像。例如:
imageRGB = imread('peppers.png'); %# Load a built-in image
imageRGB = ind2rgb(rgb2ind(imageRGB,webSafeMap),webSafeMap);
imshow(imageRGB);
X = rgb2ind(RGB,MAP)
语法:http://www.mathworks.com/help/techdoc/ref/rgb2ind.html
看起来http://en.wikipedia.org/wiki/Web_colors#Web-safe_colors定义了所需的MAP。