0
000에서 111까지의 RGB 방법을 사용하여 이미지에서 최대 8 가지 색상을 계산할 수있는 프로그래밍을 완료했습니다. 일부 수정이 필요합니다. 지금까지 나는 128보다 큰 숫자가 128보다 1이면 &이 0이 될 것이라고 선언합니다. 이것은 8 가지 색상으로 계산됩니다. 0-64,65-128,129-192,193-255에서 부분적으로 말하면 색상 수를 늘리는 방법. 간격의 수를 증가8 대신에 색상 수가 증가합니다.
는count=zeros(1,8);
for i = 1:w
for j = 1:h
if redChannel(i,j) > 128,
aredChannel2 = 1;
else
aredChannel2=0;
end
quantizedImage(i,j,1)=aredChannel2*255;
if greenChannel(i,j) > 128,
agreenChannel2 = 1;
else
agreenChannel2=0;
end
quantizedImage(i,j,2)=agreenChannel2*255;
if blueChannel(i,j) > 128,
ablueChannel2 = 1;
else
ablueChannel2=0;
end
quantizedImage(i,j,3)=ablueChannel2*255;
bin=4*aredChannel2+2*agreenChannel2+ablueChannel2+1;
count(bin)=count(bin)+1;
end
end
figure, imshow(uint8(quantizedImage))
편집을위한 @rayryeng 편집 – Shai
문제 없음 :) 실제로 몇 시간 후까지 예고하지 않았습니다! 나는 단지'permute'와'bsxfun'으로 당신의 우아한 솔루션을 바라 보던 중이었습니다. 아주 잘 했어. – rayryeng
@rayryeng 이봐, 이해할 수 없었다. 좀 더 구체적으로하기 위해 if else를 사용할 수 있습니까? 그리고 카운트는 어때? bin = 4 * aredChannel2 + 2 * agreenChannel2 + ablueChannel2 + 1; 카운트 (빈) = 카운트 (빈) +1; –