67枚あるtifファイルの256×256の画像を256×256×67の三次元行列にしたいです
6 views (last 30 days)
Show older comments
67枚あるtifファイルの256×256の画像を256×256×67の三次元行列にしたいです 下記のプログラムで、tifファイル1枚1枚をグレースケールに変換したのですが、それらを一つの三次元行列にしたいのですが、cat関数が使えるかなと思って試したのですがfor分の中に上手く組み込むことができず困っています。 clear; clc; close all; % 初期化
fileFolder = fullfile(pwd,'Series1'); % 画像の読込み (67枚の断面画像)
tifFiles = dir(fullfile(fileFolder,'*.tif'));
numfiles = length(tifFiles); mydata = cell(1, numfiles);
for k = 1:numfiles
mydata{k} = imread(tifFiles(k).name);
gray{k} = mat2gray(mydata{k});
end
0 Comments
Accepted Answer
Tohru Kikawada
on 18 Jan 2017
下記のようなコードで直接3次元配列に読み込んではいかがでしょうか。
手元に画像がないのでご自身の環境でお試しください。
また、 gray は同名の関数がありますので、変数としては使わないほうが無難です。
fileFolder = fullfile(pwd,'Series1'); % 画像の読込み (67枚の断面画像)
tifFiles = dir(fullfile(fileFolder,'*.tif'));
numfiles = length(tifFiles);
img = imread(tifFiles(1).name);
grayscale = zeros(size(img,1),size(img,2),numfiles);
for k = 2:numfiles
grayscale(:,:,k) = imread(tifFiles(k).name);
end
More Answers (0)
See Also
Categories
Find more on Get Started with MATLAB 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!