我正在显示以下二进制格式的边界图像
边界图像
我想将白色像素转换为不同的颜色,一次只能使用一种颜色。
我们如何做到这一点?
image = imread('binaryImage.png');
%Sysnex to convert into different color image ?%
答案 0 :(得分:1)
启动一个新脚本,并将以下函数粘贴到其上,然后将其保存在项目的同一文件夹中,然后,只要要将图像转换为颜色,就可以使用该函数,应将二进制图像作为第一个参数,并提供RGB颜色作为第二个参数,例如,如果您想要红色,可以使用myRGB = BW2RGB(myBinaryim,[255,0,0])
function RGBimage = BW2RGB(BWimage,RGBcolor)
RGBimage(:,:,1)=BWimage;
RGBimage(:,:,2)=BWimage;
RGBimage(:,:,3)=BWimage;
RGBimage = uint8(RGBimage);
for m = 1:size(BWimage,1)
for n=1:size(BWimage,2)
if(BWimage(m,n)==1)
RGBimage(m,n,1)=RGBcolor(1);
RGBimage(m,n,2)=RGBcolor(2);
RGBimage(m,n,3)=RGBcolor(3);
end
end
end
答案 1 :(得分:0)
如果想要灰度图像,可以执行以下操作:
coloredImage = image*color_you_want;
对于真彩色,这有点不同,因为您需要将每个像素转换为RGB像素。
color = [0.2, 0.8, 0.3];
coloredImage = zeros(size(image)(1), size(image)(2), 3);
coloredImage(:,:,1) = image*color(1);
coloredImage(:,:,2) = image*color(2);
coloredImage(:,:,3) = image*color(3);
您可以使用for
循环轻松地对其进行调整,从而设置不同的颜色。您将颜色矢量转换成矩阵,并在循环的每一步中,采用由特定行表示的颜色。