グレースケール画像の輝度値のみを変更する方法

16 次查看(过去 30 天)
Natsumi Nakatani
Natsumi Nakatani 2020-1-17
グレースケールに変換した画像の輝度値をある式(例えば、y=2X+1)に投入し、算出したyの値に変換した画像を作りたいと思っています。
変更範囲は画像全体の場合と特定の箇所(複数のピクセル)の場合の2パターンを考えています。
どのようにしたら良いでしょうか。ご回答いただけると幸いです。

采纳的回答

Kenta
Kenta 2020-1-17
こんにちは、画像の変数Iも行列と同様に、.*(ドットと掛け算)を用いて各要素をそのまま掛け算できます。
ある場所にしたかったら、下のような書き方をすれば範囲を指定できるので、同様にすれば指定の範囲だけ計算できます。
imtool(対象画像の変数名)でピクセルの情報などが読めるので、それを利用して位置を定めてもよいかもしれません。
result.PNG
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 个评论
Kenta
Kenta 2020-1-20
参考になり、よかったです。arrayfunを使えばできます。
例えば以下のようです。
result.PNG
a=randi(10,[3 3])
disp('各ピクセルの値をxとすると、2のx乗+1の値を計算')
b=arrayfun(@(x) 2^x+1, a)
Natsumi Nakatani
Natsumi Nakatani 2020-1-20
早速ご回答いただきありがとうございます。おかげ様でできました。

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 イメージ ビューアー アプリを使用した対話型調査 的更多信息

Community Treasure Hunt

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

Start Hunting!