Matlab을 이용한 영상처리 - 1. 영상처리란?

Programming/Image Processing 2010. 8. 24. 16:42

지인의 추천으로 영상처리를 연구하는 연구실에 소속된지 1년 반이 되었지만 영상처리에대해 심도있게 한 책을 부여잡고 공부한 적은 없는 것 같다.

졸업을 앞두고있지만(ㅠㅠ) 그 전에 연구실에 꽁박힌 영상처리 책 한권정도는 끝내고 가보려고 한다 !

어디서나 접속하고 쉽게 관리가 가능하다는 블로그의 장점을 십분활용해서 학습일지를 작성할 것이다.  돌아서면 잊어버리는 내 습성?을 감안해서 되도록 언제 다시 보더라도 이해 하기 쉽도록 글을 작성해 볼 것이다.

영상처리에 대해 공부하려면 먼저 영상처리가 무엇인지 알아야겠지 ?
영상처리를 한마디로 하자면

편의를 위해 영상을 조작하는 것이다.

너무 짧은가 ? 하지만 이 이상 영상처리를 잘 표현하는 말은 없을 것 같다.(있으면..말고;;)
흔히들 사용하는 포토샵이 그 일례라 할 수 있다.
인간은 대부분 보다 디테일한 영상을 원하지만, 반대로 기계는 여러 자동화 작업을 위해 단순하게 영상처리를 하는 것을 선호하는 편이다.


영상과 디지털 영상

영상처리를 위해서 연속적인 이미지를 샘플링하는 것이 필요하다.
여기서 샘플링이란, 이산(discrete)값으로 변화시키는 것이다.
간단한 예를 들자면 RGB색상 표현법에서 (255,0,0)과 같이 색상이 표현되지 않는가?
사실 붉은색과 좀더 연한 붉은색은 연속적이지만 수치화를 통해 이산화를 시킨것이다.
(255와 240과 같이)

이렇게 해도 연속적인 이미지를 복원할수 있음이 보장된 것은, 하나의 직선이 있을때 두개의 점만으로도 그 직선을 그릴수 있다는 것을 생각하면 간단하다.
물론 곡선에서도 그 곡선이 그려질수 있도록 충분한 정보를 제공하는 점이 있다면 이것이 가능하다고 볼 수있다. 이 '충분한 정보'의 Threshold가 되는 샘플링 주기를 나이퀴스트 한계조건 이라 일컫는다. 

샘플링후에 조작, 대표적인 영상의 형태는 4가지가 있다.

1. 이진 영상 - 이미지에서 관심있는 픽셀과 관심없는 픽셀을 나누는 작업이 이뤄진 영상. 대체로 1과 0으로 나눔
2. 그레이 스케일 - 다른 영상처리의 처리속도 향상을 위해 수행되는 작업. 흑백영상.
3. RGB
4. 인덱스화 - 저장과 같은 파일의 포멧에 맞추기위해 칼라맵 혹은 칼라 팔레트로 대응시킨 영상
(즉 실제 칼라를 사용하지 않고 맵에 있는 칼라로 인덱스-찾아가기.. 배열의 참조주소등을 지정했다고 이해하면 쉬울듯-화 시킴)

Intro가 조금 길어졌다.
다음 글은 Matlab 함수를 본격적으로 이용해보겠다.