【问题标题】:convert binary image to RGB in matlab [closed]在matlab中将二进制图像转换为RGB [关闭]
【发布时间】:2014-07-13 10:54:50
【问题描述】:

我将 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);

但结果又是灰度图像。

【问题讨论】:

  • 因为您使用的是gray2ind 而不是rgb2ind
  • 什么是s?为什么要创建bww,它从未使用过?
  • 首先使用 gray2ind(BW,n) 函数将我的二进制/灰度图像转换为索引图像。然后使用 ind2rgb(X,map) 函数将此索引图像转换为 rgb 图像。是否不正确?
  • @sahar:你的代码应该做什么?您希望颜色来自哪里?
  • 我已更改 bww 并将其命名为 s。抱歉,我再次编辑了我的问题。

标签: image matlab rgb color-mapping


【解决方案1】:

您的问题是[X, map] = gray2ind(s,16); 部分等同于map = gray(16);。 IE。你会得到一个包含 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));

给予

【讨论】:

    猜你喜欢
    • 2015-11-18
    • 2012-10-29
    • 2015-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-26
    • 2021-12-15
    • 1970-01-01
    相关资源
    最近更新 更多