Error while using rgb2gray

I m trying to accept series of color images and apply edge function on them. this is my code....
if true
for k = 1:10
tifFilename = strcat( num2str(k), '.tif');
[X,map] = imread(tifFilename);
gmap = rgb2gray(map);
BW = edge(gmap,'sobel');
figure, imshow(BW);
end
end
it shows the following error
??? Error using ==> rgb2gray>parse_inputs at 82 MAP must be a m x 3 array.
Error in ==> rgb2gray at 35 X = parse_inputs(varargin{:});
Error in ==> sequenceimageprocessing at 6 gmap = rgb2gray(map);

 採用された回答

Image Analyst
Image Analyst 2013 年 7 月 14 日

1 投票

Color images don't have a colormap. Try this
fontSize = 20;
for k = 1:10
tifFilename = sprintf('%d.tif', k);
if ~exist(tifFilename, 'file')
fprintf('%s not found.\n', tifFilename);
continue;
end
rgbImage = imread(tifFilename);
grayImage = rgb2gray(rgbImage );
BW = edge(grayImage ,'sobel');
subplot(2,2,1);
imshow(rgbImage);
title('Color Image', 'FontSize', fontSize);
subplot(2,2,2);
imshow(grayImage );
title('Grayscale Image', 'FontSize', fontSize);
subplot(2,2,3);
imshow(BW);
title('Binary Edge Image', 'FontSize', fontSize);
end

その他の回答 (1 件)

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 7 月 14 日

2 投票

Maybe your image is not RGB, check
size(X)

7 件のコメント

Febin Benjamin
Febin Benjamin 2013 年 7 月 14 日
編集済み: Febin Benjamin 2013 年 7 月 14 日
size is= 480 640
nw what should i do?
Azzi Abdelmalek
Azzi Abdelmalek 2013 年 7 月 14 日
In windows Matlab command, just to check if your image is nxmx3
Febin Benjamin
Febin Benjamin 2013 年 7 月 14 日
i did that.... and it showed me this....
ans=
480 640
now what should i do?
Azzi Abdelmalek
Azzi Abdelmalek 2013 年 7 月 14 日
編集済み: Azzi Abdelmalek 2013 年 7 月 14 日
Nothing, your image is already grayscale
Febin Benjamin
Febin Benjamin 2013 年 7 月 14 日
編集済み: Febin Benjamin 2013 年 7 月 14 日
And what if it shows
ans =
3058 3382 3
m sorry if m irritating u..... m a rookie actually.... :)
Azzi Abdelmalek
Azzi Abdelmalek 2013 年 7 月 14 日
Have you the same error message with this case?
Azzi Abdelmalek
Azzi Abdelmalek 2013 年 7 月 14 日
編集済み: Azzi Abdelmalek 2013 年 7 月 14 日
[X,map] = imread(tifFilename)
Check if map is nx3 array
then write
gmap = rgb2gray(map);

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeConvert Image Type についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by