본문 바로가기
영상처리

비트맵 포맷의 구조

by 머리올리자 2021. 1. 24.

디바이스에 독립적인 영상파일을 저장하는 표준규격으로는 JPEG, GIF, BMP, TIFF, PCX, PGM 등 여러 규격이 존재

보통 영상데이터는 정ㅂ조량이 크기 때문에 압축을 통해 작은 크기로 변환하여 저장

 

BMP 파일포맷은 압축을 수행하지 않으며 헤드가 있는 여러 형식의 파일 중에수 구조가 가장 간단.

 

출처 : https://namu.wiki/jump/Vtk5mfLnt%2FOQxXaVyGZC4RPePirID%2B4N3Pe4%2FmxC1rlcRuvaXZk4Bt1m1MY2RqWn

 

비트맵 파일에 대한 정보(파일헤드)

  • "파일자체"의 정보를 저장하고 있는 구조체로써 미리 정의
  • 사용자가 구조체 변수를 선언해 사용

"영상 자체" 에 대한 정보(영상헤드)

  • 비트맵 영상에 대한 크기나 흑백/컬러 정보, 팔레트 크기 정보 등을 저장하기위해 파일헤드 바로 다음에 위치하는 구조체 변수.

팔레트

  • 인덱스에 의한 컬러값을 저장하기 위한 구조체
  • 팔레트의 수만큼 배열을 할당하여 저장
  • 256 컬러모드의 영상은 팔레트배열 크기가 256개, 16비트 컬러영상은 팔레트 크기가 $2^{16}$개

DIB 사용 시 주의점

  • 실제로 비트맵 영상이 저장될 때는 이미지가 거꾸로 저장된다.
  • 따라서 영상처리를 위해 사용할 배열로 다시 저장할 때는 영상데이터를 거꾸로 반전시켜 저장해주면 된다.

영상 가로길이는 4바이트의 배수

  • 비트맵은 메모리저장 시, 가로줄의 크기는 항상 4바이트의 배수가 되어야 함
  • 실제 사용하는 영상의 가로길이는 4바이트의 배수가 아닐 수 있으므로 이럴 경우에는 4의 배수 바이트로 바꾸어 저장
  • 예를 들어 흑백영상데이터의 실제 크기가 78 x 60이라면 가로는 4의 배수가 아니므로 80바이트로 만들고 나머지 두 바이트는 아무 값이나 넣어준다.
  • 실제 저장되는 메모리는 80 x 60 픽셀의 크기가 된다.

참고 서적 : Visual C++와 OpenCV로 배우는 디지털 영상처리

'영상처리' 카테고리의 다른 글

포인트 처리  (0) 2021.01.24
BMP 포맷  (0) 2021.01.14
Opencv 2.4.13.3 + Visual Studio 2019  (2) 2021.01.07
비트맵 영상의 컬러표현  (0) 2021.01.06
이미지 파일의 RAW  (0) 2021.01.05