개발자 블로그

영상처리 강좌 - 2. 이미지를 만들어보자! 본문

영상처리강좌

영상처리 강좌 - 2. 이미지를 만들어보자!

로이드.Roid 2015. 8. 30. 22:37

안녕하세요.

영상처리 강좌 그 두번째 시간입니다~!



강좌를 처음부터 보시려면 아래 링크를 클릭하세요.
 ☞ 2015/08/10 - [영상처리강좌] - 영상처리 강좌를 시작합니다~!!




■ 이미지 파일 포멧소개
  그럼 먼저 본 강좌에 사용될 이미지 파일 포멧에 대해서 설명드리겠습니다. 본 강좌에서는 총 3개의 이미지 파일 포멧을 사용해서 실습을 진행하도록 하겠습니다.
  • PBM(Portable BitMap) : 흑백영상
  • PGM(Portable GrayMap) : 그레이영상
  • PPM(Portalble PixMap) : 컬러영상

  각 파일의 헤더는 아래와 같은 구조로 이루어져 있습니다.
  • 매직넘버 : 파일유형이 무엇이며 데이터가 어떻게 저장되어 있는가를 정의
  • 영상의 너비(Width)
  • 영상의 높이(Height)
  • 최대값 : 최대 명암도 등급 또는 컬러 채널 값(PBM 파일은 최대값 항목 없음)

  매직넘버값의 정의는 아래 표와 같습니다. 이건 그냥 정해진 값이므로 그냥 외우시면 됩니다. 실습에 사용하는 이미지 파일에만 이런 매직넘버 값이 있는건 아니고 다른 이미지파일이나 실행파일에도 매직넘버 값은 들어가 있습니다. 예를 들면 BMP파일은 'BM', 윈도우 실행파일은 'MZ' 등으로 정의가 되어있습니다. (지난 시간에 설명했던 헥사뷰어를 이용해서 이들 파일을 열어보면 직접 확인 할 수 있습니다.)

 형식 ASCII  RAW BITS 
PBM P1  P4 
PGM P2  P5 
PPM P3  P6 


매직넘버에 대해서 더 자세히 알고싶으신 분들은 여기를 클릭하세요.
"위키피디아(영문) - Magic number(programming)" 로 이동합니다.(새창)



  영상의 너비와 높이는 가로 x 세로의 크기를 말합니다. 단위는 픽셀입니다. 이건 별로 설명이 필요없을 것 같군요~

  다음은 '최대값' 입니다. PBM 파일형식에서는 사용되지 않는 값이며, PGM, PPM 파일형식에서만 사용되는 값입니다. 일반적인 경우 그레이 영상인 PGM 파일에서는 0 ~ 255 사이의 값을 가지므로, 이 경우 최대값은 255이며, PPM 파일역시 마찬가지 입니다.

  각각의 값은 white space(space, tab, line feed, carriage return)로 구분되며 헤더가 끝나면 바로 이미지의 픽셀값이 시작 됩니다. 다른 이미지 포멧과 비교하면 대단히 간단한 형식입니다. 그럼 실제로 PBM 파일을 만들어 보면서 설명을 계속 해드리겠습니다.


혹시 다른 이미지 파일의 형식에 대해서 궁금하신가요? 그럼 여기를 클릭하세요.
"위키백과 - 분류:그래픽 파일 포맷" 으로 연결 됩니다.(새창)




■ PBM 파일 만들어보기
  PBM 파일을 만들기 위해서 특별히 준비할 것은 없습니다. 5 x 5 크기의 매우 작은 이미지를 먼저 만들어 보도록 하겠습니다. 편집은 그냥 메모장으로 해주시면 되겠습니다.


  크기가 매우 작기 때문에 따로 파일로 첨부하지는 않겠습니다. 크기 5 x 5의 이미지를 만들었습니다. 정말 간단하죠??
  만들어진 이미지를 이미지 뷰어로 확인해 보겠습니다. 만약 사용하고 계시는 이미지 뷰어가 PBM 파일을 지원하지 않는다면 이전강의를 참조하셔서 권장하는 이미지 뷰어를 설치하시기 바랍니다.


  아래 사진은 XnView를 사용해서 확인한 영상입니다.

  x 로 되어있는 이미지가 보이시나요?? 너무 작다고요??


  네~ 확대하니깐 제대로 확인이 가능하군요~
  '1'로 표현한 곳이 검은색으로, '0'으로 표현한 곳이 하얀색으로 출력되었습니다. 이 파일을 프로그램에서 읽어들여서 처리하는 것은 다음시간에 진행하도록 하겠습니다. 그럼 마지막으로 PGM 파일도 한번 만들어 보겠습니다.


  매직넘버는 'P2'이고, 가로 x 세로는 마찬가지로 5 x 5로 하겠습니다. PGM 파일에는 PBM 파일에는 없던 최대 명암도 값이 필요합니다. 이 값은 '255'로 주면 됩니다. 이미지 픽셀값은 꼭 이대로 따라 하실 필요는 없습니다. 한번 여러분 마음껏 예술혼을 발휘해 보도록 하세요~^^
  저는 그레이 이미지임을 확인 할 수 있도록 그라데이션 효과를 줘서 만들어 봤습니다. '0'이 black 이고 '255'가 white 이므로 좌상단쪽에서 우하단으로 가면서 점점 밝아지는 영상이 될 것입니다. 
  그럼 결과를 이미지 뷰어로 확인해 볼까요??


  원하는 대로 PGM 파일이 만들어졌네요~



  PPM은 PBM이나 PGM과 좀 더 차이가 있습니다. 이유는 PPM 이미지는 컬러영상이기 때문에 한 픽셀의 정보를 표현하기 위해서 R(Red), G(Green), B(Blue) 이 세가지 성분의 값을 모두 담고 있어야 하기 때문입니다. PPM 파일은 차후에 진짜 제대로 된 이미지로부터 변환해서 만들어 보도록 하겠습니다.

  어떤가요~?? 영상처리에 대해서 흥미가 좀 생기나요?? 전 대학교 때 처음 수업을 들으면서 이미지를 텍스트 편집기로 만들 수 있다는 사실에 너무나도 신기해 했었던 기억이 있습니다. 여러분들도 그랬으면 좋겠네요~ㅋ

  다음시간에는 PBM 파일과 PGM 파일을 실제 프로그램을 통해서 읽어들이는 방법에 대해서 강의하도록 하겠습니다. 다음 강의에는 드디어 소스코드가 나오겠네요~

  부족한 강의 봐주셔서 대단히 감사합니다.



※ 본 포스트에 대한 링크는 가능하지만, 퍼가는 것은 정중하게 사양합니다.



Comments