transformでコントラスト変換した画像の表示
조회 수: 5 (최근 30일)
이전 댓글 표시
深層学習によるX線画像の2クラス分類を行っております。
以下のコードによりimdsDatastore内の画像に対しコントラスト変換を行い、表示しようとしておりますが、
imshowを実行した際にエラーが発生してしまいます。ご教示ください。変換した画像を見る方法が他にあればそれでも構いません。
in=[0.1 0.9];
out=[];
%%
imdsTrainnew = transform(imdsTrain,@(x) imadjust(x,in,out));
%%
minibatch = read(imdsTrainnew);
%%
imshow(imtile(minibatch.index))
この型の変数ではドット インデックスはサポートされていません。
エラー: untitled3 (行 10)
imshow(imtile(minibatch.index))
>>
댓글 수: 1
Atsushi Ueno
2022년 10월 23일
画像データminibatchにフィールド名は存在せず、minibatch.indexとアクセスする事は出来ません。このindexとは何にアクセスしようとしたのですか?おそらくaugmentedImageDatastore関数の何かと勘違いしていると想定します。
답변 (1개)
Kojiro Saito
2022년 11월 25일
minibatch = read(imdsTrainnew)を実行しているところでminibatchに格納されているのが画像データ(数値配列)になっていて、indexというプロパティが無いのが原因です。
画像全てを一度に読み込んでもメモリーが十分あるなら、readallでTransformedDatastoreの中の画像をまとめて読み込んでimshowができます。
%%
in=[0.1 0.9];
out=[];
imdsTrain = imageDatastore({'street1.jpg', 'street2.jpg'});
imdsTrainNew = transform(imdsTrain,@(x) imadjust(x,in,out));
allImg = readall(imdsTrainNew);
imshow(allImg)
imtileではなく、tiledlayoutを使って画像の枚数ごとにreadで読み取ってタイル状に表示することもできます。
%%
in=[0.1 0.9];
out=[];
% ダミー画像
imdsTrain = imageDatastore({'cameraman.tif', 'street1.jpg', 'corn.tif','peppers.png'});
imdsTrainNew = transform(imdsTrain,@(x) imadjust(x,in,out));
% 画像の枚数を取得
numImg = length(imdsTrainNew.UnderlyingDatastores{1, 1}.Files);
% タイル状にプロット
figure
tiledlayout(1,numImg,"TileSpacing","tight");
for n=1:numImg
nexttile
img = read(imdsTrainNew);
imshow(img);
end
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 イメージを使用した深層学習에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!