2012-11-07 2 views
1

8 비트 그레이 스케일 이미지를 10, 7, 4, 3 및 1 비트 표현으로 변환해야하는 과제가 있습니다.Opencv - 이미지를 임의의 비트 심도로 변환합니다.

opencv는 8, 16, 32 등과는 다른 비트 심도를 제공하지 않는 것 같기 때문에이 작업을 수행하는 방법을 알지 못합니다.

기본적으로 흑백 이미지 (1 비트 표현)로 끝날 때까지 픽셀에 포함 된 정보의 양을 줄이는 방법이 필요합니다.

편집 : 전환이 어떻게 작동하는지 정확히 모르겠지만 올바른 전환 작업을 수행해야한다고 생각합니다.

0b00000001 

그리고 내가 같은 흑백 이미지로 저를 떠나지 않을 것입니다 : 이

0b11111111 

결국 될 것입니다 그런 식으로

0b1 

문제는 OpenCV의은으로 이것을 이해하는 것입니다 그럴거야. 당신은 약간의 시간이있는 경우

, 프로세스가 쉽게 다음 bitshifts을 할 수 convertScaleAbs와 8 비트까지 이미지를 확장 또는 적은 비트까지 확장 할 나눌 수 있습니다 이론 here

+0

방법은 이러한 전환이 일어날로되어있다>가 1 비트 변환하려면? 예를 들어 125 (1111101) 값을 10 비트 표현으로 변환한다는 것은 무슨 뜻입니까? 그것을 1 비트 표현으로 변환하는 것은 어떻습니까? 귀하의 질문에 명확히하십시오. –

답변

1

에 설명되어 있습니다.

당신은 최적의 값을 선택 알고리즘보다는 128 = 1, < 128 = 0

관련 문제