ImageDatastore内の画像をtransformを用いてコントラスト変換し表示する方法
조회 수: 5 (최근 30일)
이전 댓글 표시
深層学習を用いた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
채택된 답변
Atsushi Ueno
2022년 10월 22일
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
Atsushi Ueno
2022년 10월 22일
>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],[]) % 上記と下記は同じ
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 ROI ベース処理에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!