2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > matlab图像转化为索引图 matlab - 将RGB图像转换为索引图像并保存 - 堆栈内存溢出...

matlab图像转化为索引图 matlab - 将RGB图像转换为索引图像并保存 - 堆栈内存溢出...

时间:2022-10-29 22:54:26

相关推荐

matlab图像转化为索引图 matlab - 将RGB图像转换为索引图像并保存 - 堆栈内存溢出...

您可以执行以下操作:

将图像从RGB转换为2种颜色的索引图像:[X, cmap] = rgb2ind(RGB, 2);

将彩色图的索引替换为黑白:cmap(1, 1:3) = [0, 0, 0]; %Fist color is black cmap(2, 1:3) = [1, 1, 1]; %Second color is white

将索引图像(和地图)写入PNG文件:imwrite(X, cmap, 'K.png');

注意:将图像和索引图像写入文件时,需要写入矩阵和颜色图。

从PNG文件读取图像(和地图),并将其转换为RGB图像:[I, cmap2] = imread('K.png'); L = ind2rgb(I, cmap2);

这是一个代码示例:

RGB = imresize(imread('peppers.png'), 0.5); %Read input RGB image.

%Convert image to indexed image with 2 color.

[X, cmap] = rgb2ind(RGB, 2);

J = ind2rgb(X, cmap);

%Replace indices of color map:

cmap(1, 1:3) = [0, 0, 0]; %Fist color is black

cmap(2, 1:3) = [1, 1, 1]; %Second color is white

K = ind2rgb(X, cmap);

figure;imshow(RGB);

figure;imshow(J);

figure;imshow(K);

imwrite(X, cmap, 'K.png');

[I, cmap2] = imread('K.png');

L = ind2rgb(I, cmap2);

figure;imshow(L);

为了完成,下面是使用您的参考的示例:

[webX, web_cmap] = imread('https://i./zuIra.png'); %Read input image and color map.

RGB = ind2rgb(webX, web_cmap);

%Convert image to indexed image with 4 colors.

[X, cmap] = rgb2ind(RGB, 4);

%Collect histogram

H = histogram(X, 4);

H = H.Values';

%Replace indices of color map: set the color with minimal pixels to white, and other to black.

cmap(H == min(H), :) = 1; %Fist color is black

cmap(H ~= min(H), :) = 0; %Set other three colors to black

%Convert to RGB

bwRGB = ind2rgb(X, cmap);

%Convert to indexed image with only 2 colors:

[X, cmap] = rgb2ind(bwRGB, 2);

imwrite(X, cmap, 'K.png');

[I, cmap2] = imread('K.png');

L = ind2rgb(I, cmap2);

figure;imshow(L);

结果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。