ファイルに入っているtifファイルをまとめてグレースケールとして保存するやり方が分かりません
    4 views (last 30 days)
  
       Show older comments
    
下記のようにSeries1というファイルに入ったtifファイルをまとめて読み込んだのですが、これらをグレースケールにするやり方が分かりません。rgb2gray関数を使用したのですがエラーがでしまいます。
fileFolder = fullfile(pwd,'Series1');    % 画像の読込み (67枚の断面画像)
files = dir(fullfile(fileFolder,'*.tif'));
fileNames = {files.name};
info = imfinfo(fullfile(fileFolder,fileNames{1}));
numImages = length(fileNames);
tif = zeros(info. Width, info.Height, numImages, 'uint16');
for i=length(fileNames):-1:1
    fname = fullfile(fileFolder,fileNames{i});
    tif(:,:,i) = uint16(imread(fname));
end
imtool close all;
D = reshape(uint16(tif), [size(tif,1), size(tif,2), 1, size(tif,3)]);
figure; montage(D,'DisplayRange',[]);     % D は、128x128x1x15 の配列(x1は、グレースケールの為)
4 Comments
  Tohru Kikawada
    
 on 18 Jan 2017
				一番はじめのコードに rgb2gray が見当たりませんが、 rgb2gray によるグレイスケール変換も含めたすべてのコードを提示いただくことは可能でしょうか。
Accepted Answer
  Tohru Kikawada
    
 on 20 Jan 2017
        ちょっと状況が飲み込めていませんが、読み込む際にグレイスケールに変換したいのであれば下記の方法で実現できると思います。
ご参考になれば幸いです。
fileFolder = fullfile(pwd,'Series1');    % 画像の読込み (67枚の断面画像)
files = dir(fullfile(fileFolder,'*.tif'));
fileNames = {files.name};
info = imfinfo(fullfile(fileFolder,fileNames{1}));
numImages = length(fileNames);
tif = zeros(info.Width, info.Height, numImages, 'uint16');
for i=length(fileNames):-1:1
    fname = fullfile(fileFolder,fileNames{i});
    tif(:,:,i) = rgb2gray(uint16(imread(fname)));
end
imtool close all;
D = reshape(uint16(tif), [size(tif,1), size(tif,2), 1, size(tif,3)]);
figure; montage(D,'DisplayRange',[]);     % D は、128x128x1x15 の配列(x1は、グレースケールの為)
0 Comments
More Answers (0)
See Also
Categories
				Find more on Image Data Workflows in Help Center and File Exchange
			
	Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
