同じ画像でも輝度が変わる

画像の輝度を求めるコードを実行するとき、同じ画像でも輝度の計算結果が異なるのはなぜですか。

10 Kommentare

Kojiro Saito
Kojiro Saito am 23 Nov. 2023
画像の輝度計算はこちらのご質問のコードで実行されていますでしょうか?
乱数を入れてもないですし、同じ処理を同じ画像にして計算結果が異なるのは考えにくいので、他に原因がありそうです🤔
suzuka iwaki
suzuka iwaki am 29 Nov. 2023
返信が遅くなりすみません。そのコードで間違いありません。1枚の画像を、単体で処理したときと、連続で処理したときに、同じ画像にも関わらず輝度が同じになりませんでした。(例えば、3000枚の画像を処理するとき、1500枚目を単体で処理したときと、3000枚通しで処理した内の1500枚目の輝度の値が異なる。)このコードを通しで実行するうえで、前の画像までの処理結果が、次の画像に何らかの影響を及ぼすということは考えられるでしょうか。
Kojiro Saito
Kojiro Saito am 30 Nov. 2023
コードを拝見しましたが、for文のループ毎に独立しているので前の画像までの処理結果が影響しているのは考えにくいと思います。
1枚単体と連続で処理したときのそれぞれの実際のコードをお見せできますか?
suzuka iwaki
suzuka iwaki am 1 Dez. 2023
jpegFiles = dir('*.jpg');
numfiles = ; %フォルダ内のファイルの数
mydata = cell(1, numfiles);
T = table((1:numfiles)', zeros(numfiles,1), 'VariableNames', {'Serial_No.', 'meanLuminance'})%表作成
for k = 1:numfiles
mydata{k} = imread(jpegFiles(k).name);
RGB = imread(jpegFiles(k).name);
graying = rgb2gray(RGB);%グレースケール化
meanLuminance = mean(graying,"all")%平均輝度値を求める
T{k,2} = meanLuminance
end
コードは同じです。連続で行う場合は、フォルダ内の画像の枚数を numfiles に代入し、単体で処理を行う場合は、フォルダ内の画像1枚を別のフォルダにコピーして、 numfiles に1を代入して処理を実行しています。
Kojiro Saito
Kojiro Saito am 1 Dez. 2023
ありがとうございます。上記でフォルダー内の画像の枚数をnumfilesに代入した場合の1500枚目のmydata{1500}と、1500枚目を単体で処理する場合のmydata{1}は同じファイル名になっていますか?
suzuka iwaki
suzuka iwaki am 6 Dez. 2023
同じファイル名になっています。
Atsushi Ueno
Atsushi Ueno am 13 Dez. 2023
横やり失礼いたします。
平均値を演算していますが、この平均値に含まれる誤差が演算するタイミングによって変わってしまうのではないでしょうか?それは起こり得ます。詳しい仕組みは忘れてしまったので、また機会を見て思い出します。もう寝る。
>ビルド環境やオプションによって、同一のソースコードでも計算結果が変わる可能性がある
Kojiro Saito
Kojiro Saito am 18 Dez. 2023
画像の輝度の計算結果が違うということですが、フォルダー指定と画像指定の場合で上記のコードのmydata{k}meanLuminance の両方の値とも違いますか?
suzuka iwaki
suzuka iwaki am 25 Dez. 2023
すみません。mydata{k}の値とはどういったものでしょうか。
Kojiro Saito
Kojiro Saito am 25 Dez. 2023
imreadの実行結果のことです。上記コードの
mydata{k} = imread(jpegFiles(k).name);
で画像を読み込んでいますが、フォルダー指定と画像単体指定でこのimreadの値自体が違っているのかを確認したいと考えました。同じ値かどうかはisequal関数などで確認できます。
isequal(mydata_folder{1}, mydata_file{1})

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Produkte

Version

R2023b

Gefragt:

am 22 Nov. 2023

Kommentiert:

am 25 Dez. 2023

Community Treasure Hunt

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

Start Hunting!