【发布时间】:2025-12-12 17:25:01
【问题描述】:
我的问题很简单。我有一个 rgb 图像和一个逻辑矩阵。我想将逻辑矩阵对应元素中为真的像素设置为(150,160,170)。
例如:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0
r= 1 1 1 1 1 g= 1 1 1 1 1 b=1 1 1 1 1 logical_mat =1 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
我想要结果
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
r= 150 1 1 1 1 g= 160 1 1 1 1 b=170 1 1 1 1
150 150 1 1 1 160 160 1 1 1 170 170 1 1 1
150 150 150 1 1 160 160 160 1 1 170 170 170 1 1
我已经尝试过逻辑索引,如果将像素设置为相同的颜色很容易
lm = repmat(logical_mat,[1 1 3]);
rgb(lm) = 150;
但我不知道如何逐个通道设置值。
提前致谢。
【问题讨论】:
-
是的,我希望能够做到:
rgb(lm) = [100 150 255]:(
标签: matlab multidimensional-array matrix-indexing