RGB値の補正方法を教えてください
8 views (last 30 days)
Show older comments
RGB値の補正方法を教えていただきたいです。
I = imread("a.jpg");
imshow(I)
R = double(I(:,:,1));
G = double(I(:,:,2));
B = double(I(:,:,3));
・
・
・
その後、
hoseiR = 2*R
hoseiG = 3*G
hosieiB = 4*B
のようにイメージの各ピクセルごとのRGB値を上記の式を用いて色の変換を行いたいです。
その後、補正する前のRGB画像と補正したRGB画像を表示し,フォルダに保存する方法をご教授お願い致します。
よろしくお願いいたします。
0 Comments
Accepted Answer
Atsushi Ueno
on 8 Oct 2023
下部に解説を書きました。
I = imread("peppers.png");
hoseiRGB = uint8(cat(3,2,3,4)).* I; % 各ピクセルごとのRGB値(色)の変換
imwrite(hoseiRGB, "hoseiRGB.jpg"); % フォルダに保存
montage({I, hoseiRGB}); % 補正前後のRGB画像を並べて表示
uint8(26)*10 % uint8型は0-255。演算結果が255を超えると飽和する。
RGBイメージは、uint8またはuint16型です。MATLABは演算結果が飽和するので、イメージデータをdoubleに変換しなくても問題ありません。
I = imread("peppers.png");
class(I) % peppers.png を imread で読み込むと uint8 型のイメージデータになる
size(I) % peppers.png は X*Y*3 の RGB データ
説明の為、RGB各層別に異なる係数を掛ける為の変数を作成しました。
COE = uint8(cat(3,2,3,4)) % RGB別の係数項を作成
hoseiRGB = COE.* I; % 各ピクセルごとのRGB値(色)の変換
4 Comments
Atsushi Ueno
on 24 Oct 2023
I = imread("peppers.png");
hoseiRGB = cat(3,2,3,4).* double(I) - cat(3,10,15,20); % 各ピクセル色の変換
hoseiRGB = normalize(hoseiRGB); % MATLABに頼った正規化
montage({I, hoseiRGB}); % 補正前後のRGB画像を並べて表示
More Answers (0)
See Also
Categories
Find more on 幾何学的変換とイメージ レジストレーション 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!