컴퓨터 비전
영상 데이터와 파일 형식
Jagbbum
2023. 10. 16. 10:19
영상 데이터
영상 : 픽셀이 바둑판 모양의 격자에 나열되어 있는 형태
그레이스케일 영상 : 흑백 사진처럼 색상 정보없이 256 단계의 밝기 정보만으로 구성된 영상
트루컬러 영상 : 컬러 사진처럼 RGB 색 성분 256 단계로 표현된 영상
영상 데이터 표현 방법
정적 2차원 배열의 생성
unsigned char a[480][640] {};
단점 : 배열의 크기를 미리 알고 있어야 함
동적 2차원 배열의 생성
int w = 640;
int h = 480;
unsigned char** p;
p = new unsigned char*[h];
for (int i = 0; i<h; i++){
p[i] = new unsigned char[w] {};
}
동적 2차원 배열의 원소 접근법
for (int y=0; y<h; y++){
for (int x=0; x<h; x++){
p[y][x] = p[y][x] +10;
}
} // 스캔
동적 2차원 배열 메모리 해제
- 생성의 역순
for (int y=0; y<h; y++) delete[] p[i];
delete[] p;
영상 데이터 저장 클래스
class MyImage
{
public:
MyImage() : w(0), h(0), data(0) {}
MyImage(int _w, int _h : w(_w), h(_h) {
data = new unsigned char[w*h] {};
}
~MyImage() {
if (data) delete[] data;
}
unsigned char& at(int x, int y) {
return *(data + y*w +x);
}
public:
int w,h;
unsigned cahr* data;
};
영상 파일
비트맵 : 비트들의 집합 -> 픽셀의 집합
- 장치 의존 비트맵 : 출력 장치 설정에 따라 표현
- 장치 독립 비트맵 : 출력 장치가 달라도 동일하게 출력
BMP 파일 구조
- 비트맵 파일 헤더
- 비트맵 정보 헤더
- 색상 테이블/ 팔레트
- 픽셀 데이터
BMP : 픽셀 데이터를 압축하지 않고 저장
JPG : 손실 압축 -> 압축률이 좋아 용량이 크게 감소
GIF : 256 색상 이하의 영상 저장 , 무손실 압축
PNG : 무손실 압축, 알파 채널(투명도) 지원