디지털 영상처리

박영욱·2024년 7월 1일
0
post-thumbnail

저수준 처리 -> 노이즈를 제거하고 ,명암 개선하고, 날카롭게 만드는 등의 기초적인 연산을 포함.
중수준 처리 -> 영역 분할을 수행하고, 영역 분할된 객체들은 컴퓨터 처리에 적합한 형태로 기술함.
고수준 처리 -> 연속 띠의 제일 끝 영역이며, 영상분석에서와 같이 인식된 객체들을 통합 분석하여 "의미를 찾아내는" 작업을 포함하며, 인간 시각과 연관된 인지 기능을 수행함.

공간 도메인은 공간 평면 자체를 의미함. 공간 도메인 처리의 두 가지 주요 부류에 초점을 맞추는데 밝기(gray lebel)변환과 공간 필터링이 있다. 후자의 방식은 이웃 처리 또는 공간 컨볼루션이라고 부른다.

g(x,y) = T[f(x,y)]

여기서 f(x,y)는 입력 영상, g(x,y)는 출력 영상, T는 점(x,y) 주위의 지정된 이웃에 대해 정의되는 f에 대한 연산자이다. 또한 T는 노이즈 경감을 위해 k개의 영상을 더하는 것같이 다수의 영상에 대한 연산이 가능하다. 어떤 점(x,y)의 공간적 이웃들은 아래 그림과 같이 주로 (x,y)를 중심으로 하는 정사각형 또는 직사각형으로 정의된다.

밝기 변환함수
먼저, 위 그림에서 이웃의 크기가 1x1일 때를 보면 (x,y)에서의 g의 값은 그 점에서의 f의 밝기에만 의존하며, T는 밝기 또는 그레이 레벨 변환함수가 된다. 밝기는 특정 칼라 공간에서의 칼라 영상 성분을 나타내는데 사용한다.

s=T(r)

𝑠 : 𝑔(𝑥,𝑦)에서의 밝기
𝑟 : 𝑓(𝑥,𝑦)에서의 밝기
𝑇 :화소 값 𝑟을 화소 값 𝑠로 매핑하는 변환

함수 imadjust와 stretchlim

low_in과 high_in사이의 값을 low_out과 high_out사이의 값으로 매핑을한다. 만약에 low_in보다 작거나 high_in보다 큰 값은 잘리게 된다. 정리해서 low_in아래 값은 low_out으로, high_in위 값은 high_out으로 매핑을 한다.

코드와 이미지를 해석해보면 먼저 (a)는 원본 이미지이다.
(b)같은 경우를 살펴보면, [0 1]은 입력 이미지의 밝기 값 중 0에서 1까지의 범위를 사용하고 그 옆 [1 0]은 출력 이미지의 밝기 값을 반대로 설정을 하여 즉 0은 1로 1은 0으로 매핑이되는 것을 이미지를 통해 확인할 수 있다.
(c)는 (b)의 코드와 마찬가지로 입력 이미지의 밝기 값 중 0.5에서 0.75 사이의 범위를 사용한다. [0 1]은 출력 이미지의 밝기 값을 0에서 1사이로 매핑을 한다. 정리하면 0.5이하는 0으로 클리핑이되고 0.75이상은 1로 클리핑이 된다. 0.5와 0.75 사이의 값은 전형적으로 0에서 1사이로 확장이 된다.
(d)는 gamma 보장을 위한 매개변수 설정으로 []기본 입력 범위를 사용하고 gamma가 1보다 클 경우 이미지의 어두운 부분이 더 어둡게, 밝은 부분은 더 밝기 변한다. 반면 1보다 작을 경우, 어두운 부분이 밝아지고 밝은 부분이 어두워지는 효과가 있다. 전체적으로 이미지가 어두워지면서 대비가 증가하게 된다.
(e)같은 경우는 stretchlim함수는 입력 이미지 f의 히스토그램을 분석하여 1%와 99%에 해당하는 밝기 값을 변환한다. 이 값들은 imadjust 함수에 의해 입력 이미지의 밝기 범위를 스트레칭하는 데 사용되고 이미지의 하이라이트와 그림자를 더 넓은 범위로 확장하여 대비를 증가시킨다. 결론적으로 다시 말하면 이미지의 대비를 자동으로 조정하여 더 풍부하고 선명한 이미지를 만들어주는 함수이자 코드이다.
(f)는 앞서 말한 코드들을 조합하여 f의 이미지를 밝기 값 1%와 99% 값으로 조정하여 대비를 증가시키고 조정된 밝기 값을 반전시켜 출력을 한다. 이는 이미지의 어두운 부분과 밝은 부분을 뒤집어, negative이미지처럼 보이게 한다.

0개의 댓글

관련 채용 정보