フィルターのクリア

subtract each pixel from average pixel value

3 ビュー (過去 30 日間)
Harshit Kaushik
Harshit Kaushik 2019 年 5 月 17 日
コメント済み: Image Analyst 2019 年 11 月 11 日
i have taken mean pixel value of an image and now i have to subtract from each pixel value of the image the average pixel value...how can i do it?

採用された回答

Matt J
Matt J 2019 年 5 月 17 日
It seems deceptively simple...
Image-meanValue
  4 件のコメント
Sara AR
Sara AR 2019 年 11 月 11 日
how can i remove the mean value of the 7x7 pixels around a picture? and lets say the picture is 512*512?
Image Analyst
Image Analyst 2019 年 11 月 11 日
Use conv2().
kernel = ones(7, 7);
kernel(4, 4) = 0; % Don't include central pixel when computing mean.
kernel = kernel / sum(kernel(:)); % Normalize. Mean is the sum of the 48 pixels divided by 48
blurredImage = conv2(double(grayImage), kernel, 'same'); % Get mean in a 7x7 window around every pixel.
output = double(grayImage) - blurredImage; % Subtract local mean.
You can do it without creating a temporary image if you construct the kernel differently:
kernel = -ones(7, 7); % Minus 1 means subtract the values.
kernel(4, 4) = 0; % Don't include central pixel when computing mean.
kernel = kernel / sum(kernel(:)); % Normalize. Mean is the sum of the 48 pixels divided by 48
kernel(4,4) = 1;
output = conv2(double(grayImage), kernel, 'same');

サインインしてコメントする。

その他の回答 (1 件)

Image Analyst
Image Analyst 2019 年 5 月 17 日
Try (for an integer gray level image):
newImage = double(yourImage) - meanValue;
where you said you already have the meanValue, or
meanValue = mean2(yourImage);
if you don't.
newImage will be a floating point image, which is the only way to handle negative values in the subtraction.
  2 件のコメント
Ahmad Alenezi
Ahmad Alenezi 2019 年 10 月 10 日
I think the last answer is right !
Image Analyst
Image Analyst 2019 年 10 月 12 日
Correct. And since about half the values will be negative if you subtract the mean, the accepted answer will be wrong for about half the pixels, whereas my code won't be wrong for any of them.

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!

Translated by