画像データの各ピクセルの輝度を数字の行列で表す
24 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
Categories
Find more on Read, Write, and Modify Image in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!