着色图像中的特定像素

时间:2013-09-27 21:25:06

标签: matlab colors pixel

说我有一张图片。如何使用MATLAB

着色该图像中的某些特定像素?

感谢。

1 个答案:

答案 0 :(得分:1)

RGB像素

我建议使用RGB图像,以便您可以轻松地表示颜色和灰色像素。这是在图像上制作两个红色块的示例:

img = imread('moon.tif');
imgRGB = repmat(img,[1 1 3]);
% get a mask of the pixels you want and set an RGB vector to those pixels...
colorMask = false(size(imgRGB,1),size(imgRGB,2));
colorMask(251:300,151:200,:) = true; % two discontiguous blocks
colorMask(50:100,50:100,:) = true;
redPix = permute([255 0 0],[1 3 2]);
imgRGB(repmat(colorMask,[1 1 3])) = repmat(redPix, numel(find(colorMask)),1);

AlphaData image属性

另一种很酷的方法是使用图像的AlphaData属性。见this example on a MathWorks blog。通过使覆盖彩色图像的灰色图像透明,这基本上在图像的某些部分打开或关闭颜色。要使用灰色图像,请执行以下操作:

img = imread('moon.tif');
influenceImg = abs(randn(size(img)));
influenceImg = influenceImg / (2*max(influenceImg(:)));
imshow(img, 'InitialMag', 'fit'); hold on
green = cat(3, zeros(size(img)), ones(size(img)), zeros(size(img)));
h = imshow(green); hold off
set(h, 'AlphaData', influenceImg)

请参阅MathWorks链接中的第二个示例。