How “size(x,3)>1” works on an image?
7 ビュー (過去 30 日間)
古いコメントを表示
x=imread('a.jpg');
if (size(x,3)>1)%if RGB image make gray scale
try
x=rgb2gray(x);%image toolbox dependent
catch
x=sum(double(x),3)/3;%if no image toolbox do simple sum
end
end
I don’t understand the if condition. How “size(x,3)>1” works on an image? Can anyone please help me?
0 件のコメント
採用された回答
Thomas
2014 年 2 月 11 日
size(x,3) - if it is greater than 1 than it is a color RGB image.
try size(x) and see - if you get two dimensions its grayscale if you get three dimensions its RGB and that is exactly what your code is looking for ( if its color RGB convert to grayscale)
0 件のコメント
その他の回答 (1 件)
Image Analyst
2014 年 2 月 11 日
I prefer the more explicit:
% Get the dimensions of the image.
% numberOfColorBands should be = 1 or 3 depending if image is grayscale or RGB.
[rows, columns, numberOfColorBands] = size(grayImage);
if numberOfColorBands > 1
% It's not really gray scale like we expected - it's color.
% Convert it to gray scale by taking only the green channel.
grayImage = grayImage(:, :, 2); % Take green channel.
end
Here is how to check if you have the Image Processing Toolbox installed:
% Check that user has the Image Processing Toolbox installed.
hasIPT = license('test', 'image_toolbox');
if ~hasIPT
% User does not have the toolbox installed.
message = sprintf('Sorry, but you do not seem to have the Image Processing Toolbox.\nDo you want to try to continue anyway?');
reply = questdlg(message, 'Toolbox missing', 'Yes', 'No', 'Yes');
if strcmpi(reply, 'No')
% User said No, so exit.
return;
end
end
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Image Processing Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!