ImageDatastore内の画像をtransformを用いてコントラスト変換し表示する方法
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
深層学習を用いたX線画像の2クラス分類を行っております。
imdsTrainは1×1 ImageDatastoreとして定義されており、以下のコードによってコントラスト変換及び変換後の画像を表示しようとしましたがエラーが生じてしまいます。ご教示ください。
%%
imdsTrainnew = transform(imdsTrain,@(x) imadjust(x,[0.1 0.1 0.1; 0.9 0.9 0.9],[]));
%%
minibatch = read(imdsTrainnew);
imshow(imtile(minibatch.input))
使い方によるエラー matlab.io.datastore.TransformedDatastore/read
データストアに定義されている変換関数が無効です。
エラー: untitled3 (行 5)
minibatch = read(imdsTrainnew);
原因:
使い方によるエラー imadjust>checkRange
関数 imadjust を 2 要素のベクトルにするには、
その second 入力引数に [LOW_IN; HIGH_IN] が必要です。
>>
0 Kommentare
Akzeptierte Antwort
Atsushi Ueno
am 22 Okt. 2022
imadjust関数の第1引数に入力可能な「グレースケールイメージ・RGBイメージ・カラーマップ」の内、
imadjust関数の第2引数に入力する [low_in high_in] — 入力イメージのコントラストの範囲が[low_RGB_triplet; high_RGB_triplet] 形式の 2 行 3 列の行列である事が許されないのは「グレースケールイメージ」だけです。
imdsTrain内の画像イメージに少なくとも1つのグレースケールイメージが含まれているはずです。その場合、imadjust関数の第2引数に入力する [low_in high_in]は2 行 3 列の行列ではなく1 行 2 列のベクトルでなければなりません。
imadjust(x,[0.1 0.9],[])
2 Kommentare
Atsushi Ueno
am 22 Okt. 2022
>RGB イメージまたはカラーマップで 1 行 2 列のベクトルを指定する場合、imadjust は色平面またはチャネルごとに同じ調整を適用します。
なので、もしimdsTrain内の画像イメージにRGBイメージが混在していても1 行 2 列のベクトルで同じ動作になります。もしRGBのチャネル毎に異なるコントラスト調整をする場合はこの限りではありません。
imadjust(x,[0.1 0.1 0.1; 0.9 0.9 0.9],[])
imadjust(x,[0.1 0.9],[]) % 上記と下記は同じ
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu コントラストの調整 finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!