How can I reverse black and white in a grayscale image?

조회 수: 266 (최근 30일)
Clara
Clara 2014년 7월 2일
댓글: Victor Mtsimbe Norrild 2021년 3월 17일
I have a grayscale image and I'm trying to reverse the black and white in it as an exercise. I think I'm supposed to use for loops in some way to access the colormap so the entire image matrix is composed of 1's and 0's (at which point I could switch the two by subtracting 1 from all values) but I don't know how to get this matrix in the first place. Thank you!
  댓글 수: 2
Cedric
Cedric 2014년 7월 2일
Here is a hint
>> A = randi(5 , 3, 4)
A =
5 5 2 5
5 4 3 1
1 1 5 5
>> 5-A
ans =
0 0 3 0
0 1 2 4
4 4 0 0
Here you see that 5-A operates on the whole array A, without the necessity to implement a loop.
Cedric
Cedric 2014년 7월 2일
편집: Cedric 2014년 7월 2일
And here is a second hint:
>> I = imread('board.tif');
>> J = rgb2gray(I);
>> size(J)
ans =
648 306
>> min(J(:))
ans =
0
>> max(J(:))
ans =
255
so pixels' "grayscale" level seem to be coded with (unsigned) integers in the range 0 to 255.
Note that you can visualize J with
>> imshow( J ) ;
Now maybe there is an operation that you could perform on J which would reverse the scale ..

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

채택된 답변

Image Analyst
Image Analyst 2014년 7월 2일
Try this
inverseGrayImage = uint8(255) - grayImage;
  댓글 수: 1
Mark Quesada
Mark Quesada 2019년 3월 26일
You animal, that was spot on; Worked right out of the gate!

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

추가 답변 (1개)

Roche de Guzman
Roche de Guzman 2021년 1월 14일
I = imcomplement(I)

카테고리

Help CenterFile Exchange에서 Blue에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by