how can i quantize an image

4 views (last 30 days)
nadia
nadia on 21 Apr 2017
Answered: Walter Roberson on 21 Apr 2017
Hi, I want to quantize an image, this image is uint8 and I want to quantize it to 16 levels and for this aim I want to use bitset, I do it but this bit dose not change? can you help me?
img=uint8(imread('lena.bmp'));
for i=1:size(img,1)
for j=1:size(img,2)
bitset(img(i,j),8,0);
bitset(img(i,j),7,0);
bitset(img(i,j),6,0);
bitset(img(i,j),5,0);
end
end

Answers (1)

Walter Roberson
Walter Roberson on 21 Apr 2017
You have to assign the output of bitset to something.
I would suggest, by the way, that you consider bitand
img(i,j) = bitand(img(i,j), uint8(240));
You can do the whole thing without a loop:
newimg = bitand(img, uint8(240));

Community Treasure Hunt

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

Start Hunting!