使用Matlab从红色,蓝色和绿色三个波段制作真彩色合成图像

时间:2015-02-03 03:51:44

标签: image matlab image-processing

我有三张格式.tiff的图像,分别代表3个蓝色,绿色和红色的条带。我想使用MATLAB合并所有三种颜色以形成真正的合成图像。但是,我在从这些文件制作合成图像时遇到问题。我所拥有的唯一结果是代表每个乐队的三个图像。有人可以指导我吗?谢谢。

1 个答案:

答案 0 :(得分:2)

假设您在三个单独的图片中阅读每个乐队,我将其称为redgreenblue,您只需使用cat将图像堆叠在第三维中这样您就可以创建RGB图像,并可以保存图像或显示图像。像这样:

out = cat(3, red, green, blue); 
imshow(out);

上面的代码将采用每个色带并堆叠它们,使图像成为RGB图像。特别注意红色乐队需要先出现,然后是绿色乐队,最后是蓝色乐队。某些平台(例如OpenCV)将以相反的顺序读取波段,分别为蓝色,绿色和红色。 MATLAB假设前者为代表。

您显然需要确保它们都是相同的数据类型(uint8uint16等)并且都是相同的维度(相同的行数和列数)。下一行代码会使用imshow显示屏幕上的图像。如果要将图像保存到文件,可以使用imwrite

imwrite(out, 'output.png');

以上代码将采用out中存储的图像并创建名为output.png的PNG文件。