画像の明るさを一様にする方法

右側が明るく、左側が暗い画像があり、右側の明るさを左側の明るさと同程度になるまで下げたいです。

10 commentaires

Akira Agata
Akira Agata le 23 Jan 2024
imflatfield 関数のページにある例のような処理をするイメージでしょうか?(この例では暗い部分を明るい部分に合わせる処理ですが、その後全体の輝度を下げることでご質問の処理と同等になると考えました)
suzuka iwaki
suzuka iwaki le 23 Jan 2024
仰る通りです。バックグラウンドの明るさを均一にしたいということです。
Akira Agata
Akira Agata le 23 Jan 2024
それでは、imflatfield の後に imadjust で全体輝度を調整することで実現可能かと思います。もしうまくいかない場合は対象画像をアップロード頂けると助かります。
suzuka iwaki
suzuka iwaki le 23 Jan 2024
I=imread('sc_00776.jpg');
sigma = 30;
J = imflatfield(I,sigma);
imshow(J)
title(['Flat-Field Corrected Image, \sigma = ',num2str(sigma)])
分かりました。上記のコードで実行しているのですが、「関数 'imflatfield' (タイプ'uint8' の入力引数) が未定義です。」というようなエラーが表示されます。解決策はありますか。
Akira Agata
Akira Agata le 25 Jan 2024
ご連絡ありがとうございます。
コードを見る限りエラーとなるような問題は見当たりませんので、もしよろしければこの画像ファイル(sc_00776.jpg)をアップロード頂けないでしょうか。
どうぞよろしくお願い致します。
suzuka iwaki
suzuka iwaki le 26 Jan 2024
上の画像になります。
Akira Agata
Akira Agata le 29 Jan 2024
画像を共有頂き、ありがとうございます。
頂いた画像で imflatfield 関数は問題なく動作し、以下の出力が得られました (Image Processing Toolboxが正しくインストールされているか、今一度ご確認頂けますでしょうか)。
sigma を変えることで明るさの偏りを調整可能かと思います。
I = imread("https://www.mathworks.com/matlabcentral/answers/uploaded_files/1600896/image.jpeg");
sigma = 30;
J = imflatfield(I, sigma);
imshow(J)
title(['Flat-Field Corrected Image, \sigma = ',num2str(sigma)])
suzuka iwaki
suzuka iwaki le 30 Jan 2024
ありがとうございます。ツールボックスのインストールが出来ていませんでした。インストールして試した結果、正しく動作させることができました。
suzuka iwaki
suzuka iwaki le 30 Jan 2024
Modifié(e) : suzuka iwaki le 30 Jan 2024
I=imread('sc_00776.jpg');
sigma = 100;
J = imflatfield(I,sigma);
imshow(J)
title(['Flat-Field Corrected Image, \sigma = ',num2str(sigma)])
saveas(gcf,'sikou.jpg')
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);
meanLuminance = mean(mydata{k},"all")%平均輝度値を求める
T{k,2} = meanLuminance
end
imflatfieldの処理を行った後に、saveasでimflatfield処理を行った画像を保存すると、figureの周りの白い部分が輝度を計算する処理に影響し、正しい輝度を計算できません。解決策はありますか。
Akira Agata
Akira Agata le 31 Jan 2024
imwrite 関数を使って、処理後の配列をそのまま画像ファイルとして保存することで対応可能かと思います。

Connectez-vous pour commenter.

Réponses (0)

Produits

Version

R2023b

Community Treasure Hunt

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

Start Hunting!