디지털 영상처리

박영욱·2024년 7월 1일
1

임의의 밝기 변환을 지정

지정된 변환함수를 사용해서 영상의 밝기를 변환할 필요가 있다고 가정하자.
T : 변환함수의 값들을 포함하는 열 벡터
Ex) 8bit의 경우
T(1) : 입력 영상의 밝기 0이 매핑되는 값
T(2) : 1이 매핑되는 값
T(256) : 밝기 255가 매핑되는 값

밝기 매핑 구하기([0 1] 범위의 값이 실수 포맷으로 표현할 때)
g = interp1(z,T,f)
f : 입력 영상
g : 출력 영상
T: 열 벡터
z : 아래와 같은 T와 길이가 동일한 열 벡터

z = linspace(0,1,numel(T));
linspace(a,b,n)
:a와 b사이의 간격이 일정한 n개의 요소들로 구성된 행 벡터를 만든다.

밝기 변환을 위한 유틸리티 M-함수들

가변적인 입/출력 수 다루기
함수 nargin : M-함수에 입력되는 인자의 개수를 확인 -> 'n = nargin' 2반환
함수 nargout : M-함수의 출력의 수를 확인 -> 'n = nargout' 1반환
함수 nargchk : M-함수의 본문에 사용하였고, 옳은 수의 인자가 넘겨졌는지를 확인한다. -> 'msg = nargchk(low, high, number)' 빈 매트릭스를 반환.

밝기 스케일링을 위한 M-함수
영상을 다루다 보면 결과 영상의 화소 값이 음의 값부터 양의 값까지 넓은 범위를 갖는 일이 흔하다.
M-함수 tofloat
적절한 스케일 지수를 사용해서 logical, unit8, unit16, int16 클래스의 영상을 single 클래스로 바꿔준다.

8bit 또는 16bit 영상의 최대범위인 [0, 255] 또는 [0,65535]로 스케일링할 필요가 있다.
gscale 사용자 M-함수
: 출력 레벨을 지정된 범위로 매핑이 가능하다

g = gscale(f, method, low, high)
f = 스케일링 될 영상
method =
1) 'full8' : [0, 255]로 스케일링
2) ‘full16’ : [0, 65535]로 스케일링
3) ‘minmax’ : [0, 1]인 인자 low와 high가 제공되어야 한다 ->[low, high]로 매핑

0개의 댓글

관련 채용 정보