replace RGB values with new values
    1 view (last 30 days)
  
       Show older comments
    
How to change the pixel values of a RGB image to 
% if pixel value is in the following range
0-64  to 0 
65-128 to 1
129-192 to 2
192-255 to 3
How to change in all the channels without using for loop
0 Comments
Accepted Answer
  Dyuman Joshi
      
      
 on 25 May 2022
        
      Edited: Dyuman Joshi
      
      
 on 25 May 2022
  
      rgb=[67,68,69;0,67,69;0,66,68;125,126,127;122,125,127;117,122,126;113,114,115;110,113,115;106,111,114]
floor(abs(rgb-1)/64)
2 Comments
  DGM
      
      
 on 25 May 2022
				If the input is properly uint8 class, then the output won't be as expected.  So long as the input is at least scaled [0 255], the following should work regardless of input class, and the output will be cast properly for the scale.
uint8(floor(abs(double(rgb)-1)/64))
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

