ssimで同時に複数枚の計算は可能でしょうか?

10 views (last 30 days)
弘達 土亀
弘達 土亀 on 14 Sep 2020
Answered: 弘達 土亀 on 4 Nov 2020
Reference画像に対して複数枚の画像(比較画像)とssimを行い結果を算出したいと考えています。
比較を行う画像を一枚づつ取り込んで、結果を算出して行く方法しかないでしょうか?
比較画像を全て取り込み、結果を算出する方法はあるのでしょうか?
  7 Comments
弘達 土亀
弘達 土亀 on 30 Sep 2020
返信ありがとうございます。
1)が私は行いたいことであります。
ssimvalを算出する時は ssimval = ssim(●●,ref) となります。(先ほどの質問ではコードが間違っていました。)
今回教えて頂いたコードであると I と mread(filnname)が ssimval のコードと比較すると反対ではないのかと思いました。
ssim(I,imread(filnname)) → ssim(imread(filename),I) ①
質問後に、①のようにssimのカッコ内反対に変更して実行してみたら変更前後で同じ結果になりました。
質問がわかりにくくて申し訳ありません。

Sign in to comment.

Answers (1)

弘達 土亀
弘達 土亀 on 4 Nov 2020
今度は、Reference画像に対して複数枚の画像(比較画像)とDice係数の算出を行いたいと考えています。
1枚ずつの場合は、データをuit8からlogicalに変更することで算出する事が出来ました。
フォルダ内に複数データがある場合に、データを一括でlogicalに変更してDice係数を算出できるでしょうか。
以前教えて頂いたssim算出のフローを下記に記します。
このフロー編集して算出できると助かります。
何卒よろしくお願いします。
% 参照画像読み込み
>> I = imread('cameraman.tif');
% imgs フォルダには 複数枚の画像が入っていると仮定します
% イメージデータストアの作成
>> imds = imageDatastore('imgs');
% ReadFcn で ssim() 関数を実行 (ファイルを読み込む時点でReadFcnが実行される)
>> imds.ReadFcn = @(filename) ssim(I, imread(filename))
% imgsフォルダ内の画像群に対して ssim() を実行
>> readall(imds)

Community Treasure Hunt

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

Start Hunting!