ImageDatastore内の画像をtransformを用いてコントラスト変換し表示する方法
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
深層学習を用いた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 commentaires
Réponse acceptée
Atsushi Ueno
le 22 Oct 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 commentaires
Atsushi Ueno
le 22 Oct 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],[]) % 上記と下記は同じ
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur コントラストの調整 dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!