Matlab 将黑色像素转换为其他颜色

Matlab 将黑色像素转换为其他颜色,matlab,image-processing,Matlab,Image Processing,我有一个合乎逻辑的形象。我想把黑色像素转换成其他颜色 我可以将它们转换成黑绿色和蓝色,但我不知道如何将它们转换成其他颜色,如橙色、紫色、粉色 有没有办法做到这一点 我使用此代码将它们转换为蓝色 RGB = zeros(3072, 4080, 1); RGB(:, :, 3) = 1-BW; imshow(RGB); 致意要获得非原色,您需要编辑多个颜色层的值-每个像素由红色、绿色和蓝色子像素组成(因此为RGB)。基本上,你需要找到强度的组合来组成你的颜色 如果要将颜色设置为亮黄色,则以下操

我有一个合乎逻辑的形象。我想把黑色像素转换成其他颜色

我可以将它们转换成黑绿色和蓝色,但我不知道如何将它们转换成其他颜色,如橙色、紫色、粉色

有没有办法做到这一点

我使用此代码将它们转换为蓝色

RGB = zeros(3072, 4080, 1);
RGB(:, :, 3) = 1-BW;  
imshow(RGB);

致意

要获得非原色,您需要编辑多个颜色层的值-每个像素由红色、绿色和蓝色子像素组成(因此为RGB)。基本上,你需要找到强度的组合来组成你的颜色

如果要将颜色设置为亮黄色,则以下操作应有效:

RGB(:, :, 3) = blue_intensity;
RGB(:, :, 2) = green_intensity;
因为光线中的黄色是由蓝色和绿色构成的。如果您希望一种颜色比另一种颜色更多,只需使一种强度值高于另一种

如果你发布的是你想要达到的目标,我可以发布一个更清晰的答案

而且我相信你的第一行应该是
RGB=zero(307240803),制作一个3d矢量,3深,适合RGB图像

您可能想要使用它根据特定的颜色映射将2D索引矩阵(索引图像)转换为RGB图像

r
g
b
设为三个double值(范围[0..1]),表示要分配给
BW
false
的像素的新颜色,然后

RGB = ind2rgb( BW, [ r, g, b; 1 1 1] );
将所有黑色转换为
[r,g,b]
,并将
true
像素保留为白色


下面是一个例子:

BW = rand(10) < .5;
RGB = ind2rgb( BW, [100/255 10/255 50/255; 1 1 1]);
figure;
imshow( RGB );
BW=rand(10)<.5;
RGB=ind2rgb(BW[100/255 10/255 50/255;1]);
图形
imshow(RGB);
结果应该是(最大随机性
BW
):
代码

BW = logical(round(rand(5,6))) %// random logical image as input for demo
color1 = [129 52 168]; %// random color to be superimposed on the black pixels

%// Create a 3D double array with zeros from BW replaced by color1 values 
%// and ones by zeros
RGB1 = bsxfun(@times,double(~BW),permute(color1,[1 3 2]));

%// Replace the zeros created from the previous step to 255s, as they
%// denote ones in the input logical image
RGB = uint8(RGB1+(RGB1==0).*255); %// desired output RGB image in UINT8 format
imagesc(RGB),axis off %// display the RGB image for verification
输出(代码运行时)


希望这对你有用!让我知道。

也许这个FEX代码会有帮助-。根据您在color brewer网页中选择的颜色,该函数将在MATLAB中给出表示。你所要做的就是用这些数字来表示单个像素。

我想把黑色像素转换成我自己的颜色,即[RGB]=[12952168]I=imread('1.jpg');Ig=rgb2灰色(I);BW=im2bw(Ig,85/255);RGB=ind2rgb(uint8(BW)+1[100,10,50;1]);imshow(RGB)@西格拉
r
g
b
的值应在
[0..1]
范围内加倍,而不是在
[0..255]
范围内加倍!试试彩色地图
[100/255 10/255 50/255;1]
BW =
     1     0     1     1     0     1
     0     0     1     0     0     1
     0     1     1     1     1     0
     0     0     1     1     1     1
     0     1     0     0     0     0