MATLAB Answers

0

Replace pixels in a matrix without using histeq

Asked by Chrissie Nyssen on 17 Jul 2019
Latest activity Commented on by Chrissie Nyssen on 17 Jul 2019
Accepted Answer by Jan
I have a greyscale image that is 291 x 240. I have been tasked with performing histogram equalization but WITHOUT using histeq. We have been told to use a nested for loop to access each pixel individually (yes, I KNOW that this is not ideal) and replace each value by a lookup table value, T. T is an array of 256 values in the range 0 - 255.
Here is the loop , but apparently the code in the loop does not produce the correct answer. Can anyone please suggest how else I apply T to the pixel I want to transform.
for i = 1:1:r %go through rows
for j = 1:1:c %columns
img_heq(i, j) = intlut(img (i,j), uint8(T));
end
end

  1 Comment

Sorry if this seems a trivial question but I am new to MATLAB and getting no help from elsewhere. All suggestions will be gratefully received and tried.

Sign in to comment.

1 Answer

Answer by Jan
on 17 Jul 2019
 Accepted Answer

for i = 1:1:r %go through rows
for j = 1:1:c %columns
img_heq(i, j) = T(img(i,j) + 1);
end
end

  3 Comments

This should do what you intended to do.
@Jan Ohh look up table T is already given, which use to map the image, right..
Thank you both for your suggestions. I tried Jan's one, the output image and histogram looked right but unfortunately the autograder is still not accepting my answer :( but TY anyway. I will fiddle around with it some more.

Sign in to comment.