01. 화소 영역 처리의 개념
-
point 연산
-
해당 입력 화소뿐만 아니라 그 주위의 화소 값도 함께 고려하는 공간 영역 연산
-
회선 기법(또는 컨벌루션 기법, Convolution Technique)으로 수행
-
I : 입력 영상
M : 회선 마스크 (가중치)
-
엠보싱(Embossing) 효과, 블러링(Blurring), 샤프닝(Sharpening), 경계선 검출(Edge Detection), 잡음 제거 등의 기술이 있음.
e.g. 블러링은 평균값 계산. 고주파 성분을 낮춤 / edge : 미분값 계산
-
사용하는 회선 마스크
블러링 : Low Pass Filter(저역통과 필터)
샤프닝 : High Pass Filter(고역통과 필터)
-
주변픽셀이 없는 픽셀에 대해서-
처리하지 않거나 (크기 줄어듦)
0값으로 넣고 처리 (크기 유지)
맨 뒤에서 가져와 처리 (크기 유지, 신호는 주기를 갖는다는 전제 하에)
02. 회선 처리의 원리
회선 마스크가 클수록 averaging이 많이 돼, 계산량 많아져
보통 CNN에서는 3x3, 5x5 많이 사용
회선 수행 방법
- 가중치를 포함한 회선 마스크가 이동하면서 수행
- 회선 마스크가 영상의 왼쪽 위 화소에서 오른쪽으로 한 화소씩 차례로 이동하면서 수행하여 새로운 화소를 만들어 냄.
- 한 줄에서의 회선 수행이 끝나면, 다음 줄로 이동하여 다시 한 화소씩 오른쪽으로 이동하면서 차례로 수행됨.
회선의 경계 부분 처리
시작이나 끝부분에는 주변 화소가 없음
0 삽입
- 회선 마스크에 대응되는 빈 영상의 화소 값을 모두 0으로 가정해서 회선을 수행하는 방법
- 0으로 설정해서 영상의 경계 부분에서 정확한 회선 처리가 불가능하므로 손실이 발생함.
- 프로그램을 단순하게 구현할 수 있다는 장점이 있음.
중첩 부분에서만 회선 수행
- 회선 마스크와 영상이 완전하게 중첩되는 위치에서 회선을 시작하도록 하는 방법
- 회선 마스크의 크기가 3×3이면 모든 회선 마스크의 요소와 영상의 화소가 중첩되는 영상 위치 (1, 1)에서 회선을 시작함.
- 중첩 부분에서 회선 수행이 끝나면 경계 부분은 입력 영상과 같은 화소 값을 복사해서 사용
- 경계 부분은 회선 처리가 되지 않아 모든 영역이 회선 처리된 영상의 새로운 화소 값을 얻을 수는 없음.
영상의 크기를 조정하여 회선 수행
- 영상의 시작과 끝부분이 연결된 것으로 처리하는 방법
- 영상이 폐곡선을 형성해 영상의 경계 부분이 빈 영상의 화소 값을 대신
- 입력 영상의 첫 번째와 두 번째 행의 마지막 열에 있는 화소, 마지막 행의 첫 번째와 두 번째 열에 있는 화소, 마지막으로 대각선 방향으로 마지막 행의 마지막 열의 화소를 복사해 사용
회선 마스크의 특징
- 주변 화소의 값을 각 방향에서 대칭적으로 고려해야 함. 이것은 각 방향에있는 같은 수의 이웃 화소에 기반을 두고 새로운 화소 값을 생성하기 때문
- 회선 마스크의 크기는 행과 열 모두 홀수의 크기를 사용하여 3×3, 5×5, 7×7 등 -> 짝수개
- 회선 처리 기법으로 생성된 출력 영상은 밝기 에너지를 보존해야 하므로 영상의 평균 밝기를 원 영상과 똑같이 유지해야 함.
- 회선된 영상의 평균 밝기 값이 원본 영상과 같도록 많은 회선 마스크의 계수 합이 1이 되도록 함.
- 경계선 검출 등에서 사용되는 일부 회선 마스크에서는 음수의 계수를 포함하며, 계수 합이 0이 되도록 설계
- 음의 계수에서는 음의 화소 값이 생성될 수도 있으나 밝기는 항상 양의 값만 있으므로 생성된 화소 값에 일정한 상수(최대 밝기의 1/2)를 더해서 양의 화소 값이 나오도록 함.
중간 : null
마지막 : edge
'Python > Image vision' 카테고리의 다른 글
07장. 영역 처리를 이용한 에지 검출 (0) | 2020.01.20 |
---|---|
06장. 화소 영역 처리 - 2 (0) | 2020.01.20 |
04장. 화소 점 처리 (0) | 2020.01.20 |
02장. 디지털 영상 (0) | 2020.01.20 |
01장. 디지털 영상처리 개요 (0) | 2020.01.20 |