ファイルに入っている​tifファイルをまと​めてグレースケールと​して保存するやり方が​分かりません

下記のように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 个评论

thuru
thuru 2017-1-17
失礼しました。 R2016a Windows10 上のプログラム内のtifが256×256の行列だったのでそこに使おうと考えたのですが、下記のようなエラーが出ます。 エラー: rgb2gray>parse_inputs (line 73) RGB は m x n x 3 の配列でなければなりません。
エラー: rgb2gray (line 52) [X, threeD] = parse_inputs(X);
Tohru Kikawada
Tohru Kikawada 2017-1-18
一番はじめのコードに rgb2gray が見当たりませんが、 rgb2gray によるグレイスケール変換も含めたすべてのコードを提示いただくことは可能でしょうか。
thuru
thuru 2017-1-18
上記のプログラムの、for文の上のtifを grayscale = rgb2gray(tif); としたところ上記のエラーが出ました。

请先登录,再进行评论。

 采纳的回答

Tohru Kikawada
Tohru Kikawada 2017-1-20

1 个投票

ちょっと状況が飲み込めていませんが、読み込む際にグレイスケールに変換したいのであれば下記の方法で実現できると思います。
ご参考になれば幸いです。
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 个)

类别

帮助中心File Exchange 中查找有关 Image Data Workflows 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by