说我有一个图像。如何使用 为该图像中的某些特定像素着色MATLAB
?
谢谢。
我建议使用 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);
image
属性另一种很酷的方法是使用图像的AlphaData
属性。请参阅MathWorks 博客上的此示例。这实质上是通过使覆盖彩色图像的灰色图像透明来打开或关闭图像某些部分的颜色。要使用灰色图像,请执行以下操作:
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 链接中的第二个示例。