RGB値の補正方法を教えてください
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
宗樹 岡本
am 8 Okt. 2023
Kommentiert: Atsushi Ueno
am 24 Okt. 2023
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 Kommentare
Akzeptierte Antwort
Atsushi Ueno
am 8 Okt. 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 Kommentare
Atsushi Ueno
am 24 Okt. 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画像を並べて表示
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu 幾何学的変換とイメージ レジストレーション finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!