画像データの各ピクセルの輝度を数字の行列で表す
18 views (last 30 days)
Show older comments
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
上のコードで1枚の画像ごとの平均輝度を計算しているのですが、2枚の画像の各ピクセルの輝度を比較したいので、各ピクセルの輝度を数字で見れるようなコードを教えていただきたいです。よろしくお願いします。
0 Comments
Accepted Answer
More Answers (1)
Atsushi Ueno
on 2 Dec 2023
輝度の平均値を求める前の行列が目的の値なので、既にあるデータgrayingを取り出すだけで済みます。
cd /MATLAB/toolbox/images/imdata/ % このプログラムが動く様、サンプルjpgファイルがあるフォルダに移動
jpegFiles = dir('*.jpg');
numfiles = size(jpegFiles,1); % フォルダ内のファイルの数
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);
T{k} = rgb2gray(RGB);%グレースケール化 % ← ここを直接Tに格納する様に変更
% meanLuminance = mean(graying,"all")%平均輝度値を求める ← ここを削除
% T{k,2} = meanLuminance % ← ここを削除
end
T{1} % 1枚目に読み込んだ画像(サイズ:3600x2250)の輝度
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!