グレースケール画像の輝度値のみを変更する方法
16 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Natsumi Nakatani
am 17 Jan. 2020
Kommentiert: Natsumi Nakatani
am 20 Jan. 2020
グレースケールに変換した画像の輝度値をある式(例えば、y=2X+1)に投入し、算出したyの値に変換した画像を作りたいと思っています。
変更範囲は画像全体の場合と特定の箇所(複数のピクセル)の場合の2パターンを考えています。
どのようにしたら良いでしょうか。ご回答いただけると幸いです。
0 Kommentare
Akzeptierte Antwort
Kenta
am 17 Jan. 2020
こんにちは、画像の変数Iも行列と同様に、.*(ドットと掛け算)を用いて各要素をそのまま掛け算できます。
ある場所にしたかったら、下のような書き方をすれば範囲を指定できるので、同様にすれば指定の範囲だけ計算できます。
imtool(対象画像の変数名)でピクセルの情報などが読めるので、それを利用して位置を定めてもよいかもしれません。
clear;clc
I=imread('onion.png');
I2=I.*2+1;
figure;imshow(I2)
imtool(I)
I3=I;
h1=50;
h2=100;
w1=30;
w2=90;
I3(h1:h2,w1:w2,:)=I3(h1:h2,w1:w2,:).*2+1;
figure;imshow(I3)
3 Kommentare
Kenta
am 20 Jan. 2020
参考になり、よかったです。arrayfunを使えばできます。
例えば以下のようです。
a=randi(10,[3 3])
disp('各ピクセルの値をxとすると、2のx乗+1の値を計算')
b=arrayfun(@(x) 2^x+1, a)
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!