pixel by pixel squaring of image?

If I have an image of size M by N then how can I do the square of each pixel individually?

Answers (1)

outImage = zeros(size(inputImage));
for i = 1 : size(inputImage, 1)
for j = 1 : size(inputImage, 2)
outImage(i, j) = inputImage(i,j)^2;
end
end

4 Comments

I have tried it but couldn't get the result. As if do the the square of each pixel first and then the square root of each pixel then I should get the initial input image but I didn't
It worked with using ones instead of zeros in the first line.. putImage = ones(size(inputImage));
Anyway thanks for the help.
hi, why doesnt this algorithm work for a gray image? I am getting only 255
Because if the value goes above 255, it clips to 255. You'll have to use uint16 or double. And don't use a for loop like this answer did. Use dot caret instead:
outImage = double(inputImage) .^ 2; % or uint16()

Sign in to comment.

Categories

Asked:

on 12 Aug 2016

Commented:

on 22 Nov 2019

Community Treasure Hunt

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

Start Hunting!