PDA

查看完整版本 : 如何在MATLAB中将图像转换为网络安全的颜色图?


poster
2019-12-14, 20:13
我想使用MATLAB将图像转换为网络安全的颜色。有预定义的功能吗?如果没有,那么我应该第一步是什么?



回答:

Ashish (https://stackoverflow.com/questions/5336036/converting-to-websafe-colors-using-matlab/5339346#5339346)是正确的方法,但您可能会发现将所有这些值从网页中提取出来并映射到可以使用的地图中是艰巨的。您有几种创建地图的选项...

一种选择是实际上使用URLREAD (http://www.mathworks.com/help/techdoc/ref/urlread.html)函数获取 (http://www.mathworks.com/help/techdoc/ref/urlread.html)页面源,并使用REGEXP (http://www.mathworks.com/help/techdoc/ref/regexp.html)函数解析出所需的数字(“他只是建议使用正则表达式来解析HTML (https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags)吗?!”是的,我知道了。我能说什么?我是一个孤独的人,多蒂(Dottie)。

mapURL = 'http://en.wikipedia.org/wiki/Web_colors#Web-safe_colors'; urlText = urlread(mapURL); matchExpr = ['' ... '(?:\*)?(\w{3})(?:\*)?']; colorID = regexp(urlText,matchExpr,'tokens'); colorID = char([colorID{:}]); [~,webSafeMap] = ismember(colorID,'0369CF'); webSafeMap = (webSafeMap-1)./5; 但是,完成上述操作后,我意识到生成的网络安全色图值具有很好的常规结构。这意味着您实际上可以忽略上述所有混乱,并使用REPMAT (http://www.mathworks.com/help/techdoc/ref/repmat.html)和KRON (http://www.mathworks.com/help/techdoc/ref/kron.html)函数自己生成地图:

colorValues = (0:0.2:1).'; %' webSafeMap = [repmat(colorValues,36,1) ... kron(colorValues,ones(36,1)) ... repmat(kron(colorValues,ones(6,1)),6,1)]; 然后,您可以使用RGB2IND (http://www.mathworks.com/help/techdoc/ref/rgb2ind.html)和IND2RGB (http://www.mathworks.com/help/techdoc/ref/ind2rgb.html)函数轻松地对RGB图像重新着色。例如:

imageRGB = imread('peppers.png'); %# Load a built-in image imageRGB = ind2rgb(rgb2ind(imageRGB,webSafeMap),webSafeMap); imshow(imageRGB); https://i.stack.imgur.com/oiz7Y.png



更多&回答... (https://stackoverflow.com/questions/5336036)