1. 프로젝트 개요
목표
C언어를 기반으로 4가지 디지털 영상처리 구현
화소점 처리, 기하학 처리, 화소영역 처리, 히스토그램 처리
- 기타
사진 : 사용하는 컨텐츠는 직접 촬영하여 사용 (본인, 개인 MCU 등)
전체적 구성
2. 화소점 처리_Point processing
- 화소점의 원래 값이나 위치를 기준으로 화소 값을 변경하는 알고리즘
흑백 처리
- 화소의 MAX/2보다 크면 MAX, 작으면 MIN으로 설정한다.
- MAX(255)일 경우 하얀색, MIN(0)일 경우 검은색을 띈다.
- 시연
평균 흑백 처리
- 화소의 평균보다 높으면 흰색, 낮으면 검은색으로 흑백 처리
- 일반 흑백 처리보다 더 선명한 수준의 흑백 처리를 보여준다.
산술연산 밝기 처리
- 사용자의 입력 값에 따라 사칙연산으로 화소가 계산 됨
논리 연산 처리
- C에는 원 마스크가 없기때문에 흑백원을 만듦
- 임의로 만든 흑백 원(128x128) 과 논리 연산 처리를 함.
반전 처리
- 화소의 MAX 값과 해당 화소값을 빼면 반전 처리가 된다.
감마 처리
파라볼라 처리
- 2차원 곡선그래프를 통한 변환 처리법
3. 기하학 처리_Geomatric processing
축소 처리
- Input 가로세로 너비, Output의 가로세로 너비를 사용자의 입력 값으로 나누어서 축소시킴.
확대 처리
- Input 가로세로 너비, Output의 가로세로 너비를
- 사용자의 입력 값으로 곱해서 확대시킴.
이미지에 빈 픽셀(홀)이 생겨서 품질이 안좋음.
이웃 화소 보간법을 이용한 확대 처리
- 확대 된 Output에 해당 자리에 화소 하나만 넣어서 홀이 생김.
이웃된 화소에 해당 화소를 나눠주면 해결됨 이웃 화소 보간법
이동 처리
- 입력 값을 Input 가로세로에 덧셈,뺄셈을 함으로써이동 처리가 가능하다.
회전 처리
- 영상을 임의의 각도𝜃만큼 회전 시키는 식을 코드에 대입.
- 회전을 시킬 뿐 자리를 고정시키지 못하여 처리영역에서 벗어남
- 이 외에도 각도가 반시계방향으로도 바뀌는 등 문제가 많음.
중앙 회전 처리
- 역방향 사상공식을 통하여 중앙에서 시계방향으로 회전 처리함
백워딩을 통하여 홀을 없앨 수 있었음.
보간법을 응용한 중앙 회전 처리
- 회전했을때의 영상의 크기를 미리 확인 한 후, Output의 중앙에서 회전을 시키도록 하는 알고리즘.
좌우 미러링
- 좌우를 담당하는 행의 값을 MAX값에서 빼면 좌우 미러링 처리됨.
상하 미러링
- 상하를 담당하는 열의 값을 MAX값에서 빼면 상하 미러링 처리됨.
양선형 보간법 확대 처리
- 양선형 보간법 1줄 요약 :
- 홀을 주위에 있는 4개의 화소 값을 통해 홀을 채우는 것.
- 양선형 보간법은 비교적 부드러운 스케일링을 할 수 있도록 해준다.
- (z : 찾고 싶은 값)
양선형 보간법 회전 처리
- 양선형 보간법을 이용하여 회전 처리시 홀을 없애준다.
- 이웃 보간법 보다는 부드러운 느낌이 살아난다.
4. 화소영역 처리_Area processing
- 마스크 값과 아래의 식을 통해 화소 값을 찾는다.
- 주의 사항 : 마스크가 해당 Input의 밖을 계산하게 되면 에러 발생.
엠보싱
- 엠보싱 : 입력 형태를 양각 형태로 보이게 하는 효과
3x3 마스크를 이용하여 처리하였음.
평균 블러
- 블러링 : 영상을 흐리게 하는 기술 -> 노이즈 제거용으로 사용
- 평균 블러의 화소 값 : 화소 = 1/마스크 크기
가우시안 블러
- 저역통과필터로 유명한 가우시안 필터를 사용한다.
- 평균 블러에 비해 조금 더 선명하면서도 부드러운 효과를 준다.
샤프닝
- 블러와 정반대로 대비효과를 증가시킴.
- 흐린 영상을 선명하게 하는 효과가 있음.
- 샤프닝(1)에 비해 (2)가 경계 부분을 더 잘 들어냄
- 고주파 필터 샤프닝을 통해 보다 선명한 경계 부분을 처리할 수 있음.
엣지 검출
- 엣지 : 화소가 급격히 변하는 구간
- 수평엣지 검출 : 수평으로 된 엣지들을 감지한다.
- 수직엣지 검출 : 수직으로 된 엣지들을 감지한다.
- 수직, 수평 엣지 검출 : 각 엣지들을 전부 합치면 된다.
연산자 엣지 검출
- 간단한 연산으로 엣지검출을 할 수 있다.
- 유사연산자 : 마스크의 화소 값의 최대 값을 계산하여 도출. (3x3에서 8번 계산)
- 차연산자 : 유사연산자보다 계산 수가 적으면서 비슷한 결과를 도출 (3x3에서 4번 계산)
1차 미분 엣지 검출
- 영상 밝기 변화가 있는 곳만 확인하면 엣지가 검출되기 때문에 미분을 사용함.
- 1차 미분 엣지 검출 : 로버츠, 프리윗, 소벨
로버츠 엣지
- 속도가 빠른 장점. 돌출 값을 평균화를 못함, 노이즈에 약함.
프리윗 검출
- 돌출 값을 잘 평균화 하지만, 수직선 엣지를 민감하게 본다.
소벨 검출
- 돌출 값을 잘 평균화 하지만, 대각선 엣지를 민감하게 본다.
2차 미분 엣지 검출
- 1차 미분의 민감도를 둔감시켜주는 효과를 볼 수 있음.
- 잡음에 약하다.
라플라시안 검출
- 잡음에 민감, 엣지들을 비교후 임계값 이상인 엣지만 검출
* 라플라시안 회선마스크의 합은 1이어야 한다.
LOG, DOG
- LoG (Laplacian of Gausian) :잡음에 민감한 라플라시안의 단점을 고안가우시안 스무딩(블러링)을 한 후 라플라시안 사용.(1.가우시안 2. 라플라시안)
- DoG : LoG의 느린속도를 보완하기위해 나옴.
5. 히스토그램 처리_Histogram processing
- 입력되는 화소의 히스토그램을 분석하여 처리하는 알고리즘
히스토그램 표시
- Input의 화소들을 모아서 막대그래프를 보여준다.
스트레칭
평활화
*이미지의 전체 화소 값을 균등하게 재배치한다
콘트라스트의 균형이 잡힌다.
6. 마무리
참고