我使用下面的代碼行的彩色圖像轉換成灰度圖像:轉換爲灰度圖像有色在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