グレースケール画像の輝度値のみを変更する方法
16 次查看(过去 30 天)
显示 更早的评论
グレースケールに変換した画像の輝度値をある式(例えば、y=2X+1)に投入し、算出したyの値に変換した画像を作りたいと思っています。
変更範囲は画像全体の場合と特定の箇所(複数のピクセル)の場合の2パターンを考えています。
どのようにしたら良いでしょうか。ご回答いただけると幸いです。
0 个评论
采纳的回答
Kenta
2020-1-17
こんにちは、画像の変数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 个评论
Kenta
2020-1-20
参考になり、よかったです。arrayfunを使えばできます。
例えば以下のようです。
a=randi(10,[3 3])
disp('各ピクセルの値をxとすると、2のx乗+1の値を計算')
b=arrayfun(@(x) 2^x+1, a)
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 イメージ ビューアー アプリを使用した対話型調査 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!