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

10 visualizaciones (últimos 30 días)
Natsumi Nakatani
Natsumi Nakatani el 17 de En. de 2020
Comentada: Natsumi Nakatani el 20 de En. de 2020
グレースケールに変換した画像の輝度値をある式(例えば、y=2X+1)に投入し、算出したyの値に変換した画像を作りたいと思っています。
変更範囲は画像全体の場合と特定の箇所(複数のピクセル)の場合の2パターンを考えています。
どのようにしたら良いでしょうか。ご回答いただけると幸いです。

Respuesta aceptada

Kenta
Kenta el 17 de En. de 2020
こんにちは、画像の変数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 comentarios
Kenta
Kenta el 20 de En. de 2020
参考になり、よかったです。arrayfunを使えばできます。
例えば以下のようです。
result.PNG
a=randi(10,[3 3])
disp('各ピクセルの値をxとすると、2のx乗+1の値を計算')
b=arrayfun(@(x) 2^x+1, a)
Natsumi Nakatani
Natsumi Nakatani el 20 de En. de 2020
早速ご回答いただきありがとうございます。おかげ様でできました。

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Community Treasure Hunt

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

Start Hunting!