How to use function 'ind2gray'

5 ビュー (過去 30 日間)
Atinesh Singh
Atinesh Singh 2016 年 7 月 10 日
コメント済み: Image Analyst 2016 年 7 月 10 日
I'm trying to convert uint8 image to grayscale image using the following command
a = imread('image.png'); % a dimension 18*24*3
b = ind2gray(a, map);
But I'm getting an error message saying
Undefined function or variable 'map'

採用された回答

Image Analyst
Image Analyst 2016 年 7 月 10 日
You need to have some way to tell the function what color should get mapped to what gray level. The colors are a 2D array with columns for red green, and blue in the range 0-1, and one row for each gray level or range of gray levels. There are several built-in color maps to select from - see the help for colormap. For example you could do
rgbImage = ind2rgb(grayImage, jet(256));
colorbar;
jet() is a function that builds a colormap of a certain pattern with the number of gray levels you specify. There are others too. Or you could make up your own colormap completely customized.
  2 件のコメント
Atinesh Singh
Atinesh Singh 2016 年 7 月 10 日
When I'm reading an image using this command
a = imread('image.png');
I'm getting three dimensions
18*24*3
I just need an array of 2 dimensions.
Image Analyst
Image Analyst 2016 年 7 月 10 日
Then image.png is an RGB image, not an indexed image. You have to convert it to a grayscale image somehow. There are a variaety of ways to do this and I don't know what method you want to use. For example, one way is to use rgb2gray():
indexedImage = rgb2gray(rgbImage);
Or you could take just one color channel, such as the green channel, which tends to be the least noisy:
indexedImage = rgbImage(:, :, 2);

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeRed についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by