在matlab中将二进制图像转换为RGB

时间:2014-07-13 10:54:50

标签: image matlab rgb color-mapping

我将RGB图像转换为二进制文件并对其进行一些处理。现在我需要在matlab中再次将二进制图像转换为RGB图像吗?

我使用此代码:

%RGB to binary
c = imread('101200.jpg');
l=graythresh(c);
bww=im2bw(c,l);

%do processing on bww and name it s
.
.
.


%binary to RGB
[X, map] = gray2ind(s,16);
RGB = ind2rgb(X,map);

但结果又是灰度图像。

1 个答案:

答案 0 :(得分:2)

您的问题是[X, map] = gray2ind(s,16);部分等同于map = gray(16);。即你得到一个包含16个灰度级的色彩图。

由于您的图像是二进制的,因此以彩色显示图像并不合理。但如果你真的想:

%binary to RGB
[X, map] = gray2ind(s,16);
RGB = ind2rgb(X,jet(16));

当然,只会显示两种颜色,但这可能比黑白更适合你。

或者为了达到你想要的效果(在你的问题中并不完全清楚),也许只需将色彩映射传递给imshow(),例如:

c = imread('cameraman.tif');
l=graythresh(c);
bww=im2bw(c,l);
imshow(bww,lines(2));

给出

enter image description here