Main Content

imapprox

색의 수 감소를 통한 인덱스 이미지 근사

설명

예제

[Y,newmap] = imapprox(X,map,Q)는 양자화된 색이 Q개인 최소 분산 양자화(Minimum Variance Quantization)를 사용하여 인덱스 이미지 X와 관련 컬러맵 map 색의 근삿값을 계산합니다. imapprox는 컬러맵 newmap과 함께 인덱스 이미지 Y를 반환합니다.

[Y,newmap] = imapprox(X,map,tol)은 허용오차가 tol인 균일 양자화(Uniform Quatization)를 사용하여 인덱스 이미지 X와 관련 컬러맵 map 색의 근삿값을 계산합니다.

Y = imapprox(X,map,inmap)은 컬러맵 inmap에서의 역 컬러맵(inverse colormap) 매핑을 사용하여 인덱스 이미지 X와 관련 컬러맵 map 색의 근삿값을 계산합니다. 역 컬러맵 알고리즘은 inmap에서 map의 색에 가장 일치하는 색을 찾습니다.

___ = imapprox(___,dithering)은 디더링을 활성화하거나 비활성화합니다.

예제

모두 축소

맨드릴 인덱스 이미지를 불러옵니다. 220개의 색상을 가지고 있는 연관 컬러맵 map을 사용하여 이미지 X를 표시합니다.

figure
load mandrill
image(X)
colormap(map)
axis off         
axis image

Figure contains an axes object. The axes object contains an object of type image.

새 이미지 Y에 대한 컬러맵 newmap을 생성하여 인덱스 이미지 색의 수를 220개에서 단 16개로 줄입니다.

figure
[Y,newmap] = imapprox(X,map,16);
image(Y)
colormap(newmap)
axis off       
axis image

Figure contains an axes object. The axes object contains an object of type image.

입력 인수

모두 축소

많은 색을 갖는 인덱스 이미지로, 음이 아닌 정수로 구성된 m×n 행렬로 지정됩니다.

데이터형: single | double | uint8 | uint16

인덱스 이미지 X와 연결된, 많은 색을 갖는 컬러맵으로, 값이 [0, 1] 범위에 있는 d×3 행렬로 지정됩니다. map의 각 행은 컬러맵의 하나의 색에 대한 빨간색, 녹색, 파란색 성분을 지정하는, 요소를 3개 가진 RGB 3색입니다.

데이터형: double

최소 분산 양자화에 사용되는 양자화된 색의 개수로, 65,536보다 작거나 같은 양의 정수로 지정됩니다. 반환되는 컬러맵 newmapQ개 이하의 색을 갖습니다.

균일 양자화에 사용되는 허용오차로, [0, 1] 범위의 숫자로 지정됩니다. 반환되는 컬러맵 newmap(floor(1/tol)+1)^3개 이하의 색을 갖습니다.

역 컬러맵 매핑에 사용되는, 더 적은 색을 갖는 컬러맵으로, [0, 1] 범위의 값으로 구성된 c×3 행렬로 지정됩니다. inmap의 각 행은 컬러맵의 하나의 색에 대한 빨간색, 녹색, 파란색 성분을 지정하는, 요소를 3개 가진 RGB 3색입니다. 컬러맵은 최대 65,536개의 색을 갖습니다.

데이터형: double

디더링 수행 여부로, 'dither' 또는 'nodither'로 지정됩니다. 디더링을 수행하면 공간 해상도가 희생되는 대신 색 해상도가 높아집니다. 자세한 내용은 dither를 참조하십시오.

'nodither'를 선택하면 imapprox는 디더링을 수행하지 않습니다. 그 대신 이 함수는 원본 이미지의 각 색을 새 컬러맵의 가장 가까운 색으로 매핑합니다.

출력 인수

모두 축소

더 적은 색을 갖는 인덱스 이미지로, 양의 정수로 구성된 m×n 행렬로 반환됩니다. newmap(또는 지정된 경우 immap)의 길이가 256보다 작거나 같은 경우 출력 이미지는 uint8형 클래스입니다. 그렇지 않은 경우 출력 이미지는 double형 클래스입니다.

데이터형: double | uint8

출력 인덱스 이미지 Y와 연결된, 더 적은 색을 갖는 컬러맵으로, 값이 [0, 1] 범위에 있는 c×3 행렬로 반환됩니다. newmap의 각 행은 컬러맵의 하나의 색에 대한 빨간색, 녹색, 파란색 성분을 지정하는, 요소를 3개 가진 RGB 3색입니다. 컬러맵은 최대 65,536개의 색을 갖습니다.

데이터형: double

알고리즘

imapprox는 더 적은 색을 사용하는 새 컬러맵을 생성하기 위해 rgb2ind를 사용합니다. 양자화와 역 컬러맵 매핑에 대한 자세한 내용은 rgb2ind알고리즘을 참조하십시오.

버전 내역

R2006a 이전에 개발됨

참고 항목

| |

도움말 항목