% change all three channels together
colormask2 = logical(zeros(64,64,3));
colormask2(1:20,30:50,1:3) = 1;
newimage2 = origimage;
newimage2(colormask2) = 200;
型 替代和更灵活的方法:
%create 3D mask with different numbers for each channel
colormask3 = uint8(zeros(64,64,3));
colormask3(1:20,30:50,1) = 1;
colormask3(1:20,30:50,2) = 2;
colormask3(1:20,30:50,3) = 3;
newimage4 = origimage;
newimage4(logical(colormask3)) = 200; %gives same image as prior example
figure(4); image(newimage4);
newimage5 = origimage;
newimage5 = newimage5 + 10*colormask3; %adds 10 to red, 20 to green, 30 to blue
figure(5); image(newimage5);
% add to the original image itself *1/2 for red, *1 for green, and *1.5
% for blue
newimage6 = origimage + origimage.*colormask3/2;
figure(6); image(newimage6);
1条答案
按热度按时间beq87vna1#
下面是一些丑陋的图片,但希望也是一个有启发性的例子:
字符串
的数据
由于colormask是一个逻辑,您可以直接使用它来选择原始图像中的相关像素,并在一个命令中修改它们。希望这对你有帮助。
**2023年7月12日添加,以回应有关更改其他频道的评论:
您可以灵活地更改其他频道。我的原始代码只改变了红色通道,因为我的面具只有2D。
型
替代和更灵活的方法:
型