我将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);
但结果又是灰度图像。
答案 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));
给出