검색결과 리스트
글
Matlab을 이용한 영상처리 - 3. 비트평면과 공간 분해능
Programming/Image Processing
2010. 8. 25. 01:33
비트평면에 대해서도 이미지를 첨부할까 했지만 본인의 귀차니즘으로인해 .. -ㅅ-
글로만 정리하게 될 것 같다. 자주 사용되는 기능은 아닌것 같으니 ( 뭐 Most significant bit는 영상의 또렷함?을 강조하기위해 사용될 수도 있을거 같긴하다!)..
1. bit plane
grayscale 영상은 비트평면(bit plane)으로 분리, 2진 영상의 수열로 변환할 수가 있다.
각 화소의 그레이 값이 8비트의 2진 워드일때, 최하위 비트(0번째)는 이미지에 가장 영향을 적게 미치는, 자주 변하게 되는 값일 것이며, 최상위 비트(7번째)는 가장 큰 영향을 미치는 비트일 것이다.
- 이 말이 잘 와닿지 않는가 ? 숫자 128 을 생각해보자. 128에서 가장 영향이 큰 숫자는 당연히 최상위 10진 비트 , 1( 이 예에서 숫자 8의 자리수의 100배의 영향 ) 의 값을 가진 100의 자리다. -
grayscale 이미지 g에서 , mod를 이용해 나머지를 얻어낼 수 있으며, floor를 통해 내림효과를 낸다.
이를 조합해 최상위비트(7번째)의 비트 평변을 얻어내는 소스는 다음과 같다
g7 = mod(floor(g/128),2);
2. 공간 분해능
Line 4 : 같은 이미지를 불러왔다.
Line 6 : GrayScale화.
Line 7 : 공간분해능
이 부분이 공간 분해능의 Core이다. nested imresize의 형태를 취하고 있는데, 첫번째(안쪽)의 imresize는 먼저 이미지를 1/16로 축소를 한다.
이 작업을 설명하기 위해 단순화 시킨 예를 먼저 생각해보자.
W(1,1) W(1,2) W(1,3) W(1,4) ....
W(2,1) W(2,2) W(2,3) W(2,4) ....
W(3,1) W(3,2) W(3,3) W(3,4) ....
W(4,1) W(4,2) W(4,3) W(4,4) ....
위 배열은 순서쌍을 인덱스로 하여 Matrix W를 나열한 것이다.
만약 imresize(W,1/2) 를 수행하면 위 Matrix는
W(1,1) W(1,2) W(1,3) W(1,4) ....
W(2,1) W(2,2) W(2,3) W(2,4) ....
W(3,1) W(3,2) W(3,3) W(3,4) ....
W(4,1) W(4,2) W(4,3) W(4,4) ....
색깔이 칠해진 배열만을 선택하여 출력하게 된다. 4 X 4 에서 색칠한 배열은 정리하면 2 X 2 가 되니 뭐 그럭저럭 원하는 대로 축소된 셈이다.
이 이미지를 다시 imresize(W,2)를 통해 2배 확대를 하면 어떻게 되는가 ?
축소전의 W(1,1) W(1,2) 등은 복구가 불가능하다.
때문에 확대시에는
W(2,2) W(2,2) W(2,4) W(2,4) ....
W(2,2) W(2,2) W(2,4) W(2,4) ....
W(4,2) W(4,2) W(4,4) W(4,4) ....
W(4,2) W(4,2) W(4,4) W(4,4) ....
와 같이 남은 인덱스를 그 자승만큼의 수가 될 수 있도록 복사한다.
때문에 출력된 이미지는 모자이크와 같은 이미지가 된다.
Figure 1. 공간분해능 실행결과
생각보다 Blurring에 가까워 졌다 .. 왜지 ? ㅡㅡ 이렇게 하면 이론상으론 모자이크에 가까워야하는데 . .
아무튼 저 이론은 맞다. 원인을 파악하는대로 수정하겠다. (무책임..)
'Programming > Image Processing' 카테고리의 다른 글
Matlab을 이용한 영상처리 - 7. 고주파 필터, 저주파 필터 (8) | 2010.08.27 |
---|---|
Matlab을 이용한 영상처리 - 6. 필터링이란? (0) | 2010.08.27 |
Matlab을 이용한 영상처리 - 4. 양자화와 디더링 (0) | 2010.08.25 |
Matlab을 이용한 영상처리 - 2. Matlab의 기본 (15) | 2010.08.25 |
Matlab을 이용한 영상처리 - 1. 영상처리란? (0) | 2010.08.24 |