Replace pixels in a matrix without using histeq

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

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.

댓글을 달려면 로그인하십시오.

 채택된 답변

Jan
Jan 2019년 7월 17일

2 개 추천

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

This should do what you intended to do.
KALYAN ACHARJYA
KALYAN ACHARJYA 2019년 7월 17일
편집: KALYAN ACHARJYA 2019년 7월 17일
@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.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

질문:

2019년 7월 17일

댓글:

2019년 7월 17일

Community Treasure Hunt

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

Start Hunting!

Translated by