Montage関数を​使って,任意の枚数の​連続画像を一つにまと​めることができません​.

16 次查看(过去 30 天)
Yoko
Yoko 2021-11-18
评论: Yoko 2021-11-18
プログラミング初心者です.
以下のコードで,選択したフォルダから連続番号の任意の枚数(8~20枚程度)のjpg形式画像を読み込み,一つの画像としてまとめたいと思っていますが,上手く行きません.
どこに問題があるのでしょうか..教えて頂けると大変助かります.
fileFolder = uigetdir(); % Open the selected folder
imds = imageDatastore(fullfile(fileFolder,'AT*')); % Select the all images in this folder
montage(imds)
指定するフォルダ(例 D:\Document\MATLAB\AT)の中には"AT01, AT02, AT03...."とラベリングされたjpg形式の画像ファイルが複数入っています.
どうぞよろしくお願いいたします.
  4 个评论
Atsushi Ueno
Atsushi Ueno 2021-11-18
おかしいですね。montage関数はイメージ データストアの入力も受け付けます。下記はmontage関数の一部抜粋です。if文の2番目(elseif)で引っ掛かるべき所、3番目(else)まで行ってますね。
I = varargin{1};
if iscell(I) || isstring(I)
nframes = numel(I);
elseif isa(I,'matlab.io.datastore.ImageDatastore')
nframes = numel(I.Files);
else
validateattributes(I, ...
{'uint8' 'double' 'uint16' 'logical' 'single' 'int16'}, {}, ...
nfukebane, 'I, BW, or RGB', 1);
条件に当てはまる画像が指定フォルダに有ればイメージ データストアが出力されますし、無ければエラーの為イメージ データストアが出力される前に止まってしまうはずなのですが...
fileFolder = pwd; % uigetdir(); % Open the selected folder
imds = imageDatastore(fullfile(fileFolder)); % Select the all images in this folder
isa(imds,'matlab.io.datastore.ImageDatastore')
ans = logical
1
Atsushi Ueno
Atsushi Ueno 2021-11-18
montage関数について上記コメントは間違いないですが、適用されたのがR2018aでした。
従ってR2017b以前の MATLAB 及び Image Processing Toolbox ではイメージ データストアの入力を受け付けません。

请先登录,再进行评论。

采纳的回答

Atsushi Ueno
Atsushi Ueno 2021-11-18
R2017b以前の MATLAB 及び Image Processing Toolbox ではmontage関数がイメージ データストアの入力を受け付けないので、イメージデータストアの代わりに、その中のファイル名(セル配列)をmontage関数に入力する事で問題が解消します。
fileFolder = uigetdir(); % Open the selected folder
imds = imageDatastore(fullfile(fileFolder,'AT*')); % Select the all images in this folder
montage(imds.Files); % imdsからimds.Filesに変更しました
  1 个评论
Yoko
Yoko 2021-11-18
おっしゃる通りでした!
MATLAB R2017bを使っております.
教えて頂いた変更で上手くいきました.
ありがとうございます!

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Image Processing Toolbox 的更多信息

产品


版本

R2017b

Community Treasure Hunt

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

Start Hunting!