フィルターのクリア

how can i quantize an image

2 ビュー (過去 30 日間)
nadia
nadia 2017 年 4 月 21 日
回答済み: Walter Roberson 2017 年 4 月 21 日
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

回答 (1 件)

Walter Roberson
Walter Roberson 2017 年 4 月 21 日
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!

Translated by