我使用下面的代码行的彩色图像转换成灰度图像:转换为灰度图像有色在Matlab中
clc;
clear all;
close all;
[FileName,PathName] = uigetfile('*.jpg','Select the Cover Image');
file = fullfile(PathName,FileName);
disp(['User selected : ', file]);
cover = imread(file);
%cover = double(cover);
figure;
subplot(1,2,1);
imshow(uint8(cover),[]);
title('Cover image');
red = cover(:,:,1);
green = cover(:,:,2);
blue = cover(:,:,3);
a = zeros(size(cover, 1), size(cover, 2));
just_red = cat(3, red, a, a);
figure, imshow(just_red);
just_green = cat(3, a, green, a);
figure, imshow(just_green);
just_blue = cat(3, a, a, blue);
figure, imshow(just_blue);
[r1 r2 a] = size(just_red);
disp(a); disp(r1); disp(r2);
coverbw = rgb2gray(cover);
original = gray2rgb(coverbw);
figure, imshow(original);
原始图像转换为灰度后,我想将灰阶图像转换回到原来的彩色的一个。我试着用下面的代码行做的工作:
original = gray2rgb(coverbw);
但我发现了以下错误:
??? Undefined function or method 'gray2rgb' for input arguments of type 'uint8'.
Error in ==> main at 35
original = gray2rgb(coverbw);
有人可以帮助我从它的灰度版本即coverbw
获得原始图片而不是结合红色,绿色和蓝色图像的三个单独组件。
谢谢。
您希望如何从灰色图像中恢复丢失的颜色信息? – Shai
其实,我正在做图像置乱的阿诺德变换。该代码适用于二维图像。解密原始图像后,我得到一个灰度图像。但是,我想要一个彩色图像。是否可以从我用红色,绿色和蓝色保存的信息为该灰度图像添加颜色? – competesingh
@Shai,我将图像的信息保存在红色,绿色和蓝色的阵列中。你能帮助我恢复颜色吗? – competesingh