2013-03-06 3 views
0

OpenCV를 사용하여 주어진 이미지의 각 픽셀에 대한 모든 RGB 값의 전체 목록을 얻는 방법을 찾고 있습니다. 이제 이것을 "색상 양자화"라고 부릅니다."컬러 양자화"는 OpenCV의 컬러 양자화에 적합한 이름입니까?

문제는 적어도 온라인에서 발견 한 바에 따르면,이 시점에서이 "색 양자화"는 히스토그램 또는 "색 감소"또는 유사한 이산 계산 솔루션에 관한 것입니다.

내가 원하는 것을 알고 있고 "인터넷"이이 단어의 의미에 대해 다른 견해를 가진 것처럼 보였으므로 궁금해하고있었습니다. 어쩌면 거기에 실제 해결책이 없을 수 있습니까? OpenCV lib의 작동 가능한 방법 또는 작동 알고리즘.

+0

각각의 픽셀에는 R, G 및 B 값이 하나만있는 것은 아닙니다. –

+0

@perfanoff 네, 그렇습니까? – user2128456

+0

@perfanoff는 하나의 픽셀 값이 아닌 관련된 백분율로 RGB 값 목록을 원합니다. – user2128456

답변

1

색 양자화는 유한 디지털 색상 공간에서 무한 자연색의 변환입니다. 어쨌든 풀 컬러 '히스토그램'을 만들려면 opencv의 희소 행렬 구현을 사용하고 그것을 계산할 자신의 함수를 작성할 수 있습니다. 물론 이미지에 대한 다른 구조적 또는 연속성 정보가 없으면 하나씩 픽셀에 액세스해야합니다.

+0

OpenCV는 주어진 이미지가 채택한 색상 모델을 기반으로 다른 작업을 관리하고 실행할 수 있습니까? 예를 들어 이미지가 sRGB 또는 Adobe RGB 또는 CMYK를 사용하고 있는지 감지합니다. – user2128456

+0

기본적으로 no입니다. 하지만 파일의 EXIF에서 해당 내용을 읽고 그에 따라 행동 할 수 있어야합니다. Btw opencv는 BGR 형식을 사용합니다. [여기] (http://stackoverflow.com/questions/2122706/detect-color-space-with-opencv) – sfotiadis

+0

좋아, 고마워요, 마지막으로 히스토그램은 그래픽이거나 std와 같은 수치 출력을 얻을 수 있습니다. :: vector 또는 std :: map? – user2128456

1

일반적으로 양자화은 실수 (수학적) 값을 가진 입력 신호를 불연속 값 집합으로 가져 오는 연산입니다. 이 프로세스를 구현하기위한 가능한 알고리즘은 데이터의 막대 그래프를 계산 한 다음 높은 인구수를 가진 막대 그래프의 n 빈에 해당하는 n 값을 유지하는 것입니다.

색상 목록 일 가능성이 있습니다. 8 비트 양자화 이미지 (유형 CV_8UC3)를 사용하는 경우, 입력 이미지의 히스토그램 (빈 너비는 1)을 가져 와서 비어 있지 않은 빈에 대한 결과를 검색하여 원하는대로 수행 할 것입니다.