我想使用MATLAB将图像转换为网络安全的颜色。有预定义的功能吗?如果没有,那么我应该第一步是什么?
回答:
Ashish是正确的方法,但您可能会发现将所有这些值从网页中提取出来并映射到可以使用的地图中是艰巨的。您有几种创建地图的选项...
一种选择是实际上使用
URLREAD函数
获取页面源,并使用
REGEXP函数解析出所需的数字(“他只是建议
使用正则表达式来解析HTML吗?!”是的,我知道了。我能说什么?我是一个孤独的人,多蒂(Dottie)。
mapURL = '
http://en.wikipedia.org/wiki/Web_col...e_colors'; urlText = urlread(mapURL); matchExpr = ['' ... '(?:
\*)?(\w{3})(?:\*)?']; 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)]; 然后,您可以使用
RGB2IND和
IND2RGB函数轻松地对RGB图像重新着色。例如:
imageRGB = imread('peppers.png'); %# Load a built-in image imageRGB = ind2rgb(rgb2ind(imageRGB,webSafeMap),webSafeMap); imshow(imageRGB);
更多&回答...