Pixel : 영상의 기본 단위. PICture ELement, 화소
Pixel이 바둑판 모양의 격자(2차원 배열)에 나열되어 있는 형태.

많이 알다 싶이 Pixel은 RGB(Red, Green, Blue)로 이루어져 있다.

그레이스케일 영상, Grayscale image
트루컬러 영상, Truecolor image

(0, 0)으로 표현한다.C언어의 배열과 같은 방식.이 말은 2차원 행렬로도 표현할 수 있다는 말.
컴퓨터 비전에서는 행렬 계산을 할 일이 많을 것이다.
// C++
// 640*480, VGA 영상 데이터 할당
unsigned char** p;
p = new unsigned char* [480];
for(int i=0; i<480, i++){
p[i] = new unsigned char[640] {};
}
// 혹은 1차원 배열에 저장하기
unsigned char* data = new unsigned char[640*480] {};
이런 식으로 new키워드를 사용해 동적으로 배열을 할당하고, 이후 해제하는 방식을 사용 한다.
// C++
// 할당한 데이터 메모리 해제
for(int i=0; i<480, i++){
delete[] p[i];
}
delete[] p;
// 1차원 배열이라면, 한 번만 delete를 하면 된다.
delete[] data;
class MyImage
{
public:
MyImage() : w(0), h(0), data(0) {}
MyImage(int _w, int _h) : w(_w), h(_h) { // w = 가로, h = 세로
data = new unsigned char[w*h] {};
}
~MyImage() {
if (data) delete[] data;
}
unsigned char& at(int x, int y){ // 영상에서 (x, y)좌표의 픽셀을 불러 오고 싶다.
return *(data + y*w + x);
}
public:
int w, h;
unsigned char* data;

그림판을 예시로 들 수 있겠다.
가로 x 세로 bytes가로 x 세로 x 3 bytesfhd(1920*1080) 트루컬러 동영상을 1(30fps)초간 재생하려면?