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

조회 수: 15 (최근 30일)
Natsumi Nakatani
Natsumi Nakatani 2020년 1월 17일
댓글: Natsumi Nakatani 2020년 1월 20일
グレースケールに変換した画像の輝度値をある式(例えば、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!