保存带标签的图像

时间:2013-12-19 09:24:11

标签: matlab image-processing

我已使用函数bwlabel标记图像,如下所示:

[L, num] = bwlabel(I, 8);

对于我正在使用的图片,请说我有20个标签。因此,当您运行unique(L)时,您将获得最多20个数字列表。

问题在于,当我imwrite(L)和新写入图像上的运行unique时,我会将像素的值作为我标记的原始图像中的强度值,而不是标记图像。

我如何imwrite标记图片,同时将其保留为带标签的图片?

1 个答案:

答案 0 :(得分:2)

您可以将图像编写为索引图像(使用色彩映射)

imwrite( L, rand( 256, 3 ), 'myIndexedImage.png' ); % wrirte

阅读

[L cmp] = imread( 'myIndexedImage.png' ); % and you can ignore the colormap

或者,转换为uint8并将标签保存为灰度(假设您的标签不超过256个)

imwrite( uint8(L), 'myLabels.png' );

阅读

L = imread( 'myLabels.png' );

小心不要使用任何压缩格式(例如,jpg)。