💡 pixel은 영상을 구성하는 최소단위 이며 밝기와 색상을 표현한다.
영상은 2차원으로 구성된 pixel로 이루어져 있다. pixel를 표현 할 때 자료형은 8bits의uint8(unsigned char)을 사용하며 이는 0~255의 값을 표현 할 수 있다.
640x480 해상도 영상의 경우 가로 640개 세로 480개 총 307,200개의 픽셀로 이루어져 있다. 이를 수학적으로 표현하면 세로 가로 순으로 표현하며 480x640의 행렬이라 하고 height 480, width 640이라 할 수 있다.
opencv에서 pixel 좌표를 (x, y)의 튜플 형태로 나타낸다.
x, y 좌표계와 달리 opencv에서는 x는 오른쪽으로 값 증가, y는 아래쪽으로 값 증가한다.
컴퓨터 영상은 크게 Grayscale 과 Color로 구분된다.
빛의 정도로 영상을 구성하게 되고 이는 uint8의 범위인 0(black)~255(white)로 표현된 single-channel이다.
grayscale = np.array([[0,255,120,255,0],
[255,120,255,120,255],
[0,255,120,255,0],
[255,120,255,120,255]],np.uint8)
# **grayscale shape : (4, 5)**
(4x5) 영상
0 | 255 | 120 | 255 | 0 |
---|---|---|---|---|
255 | 120 | 255 | 120 | 255 |
0 | 255 | 120 | 255 | 0 |
255 | 120 | 255 | 120 | 255 |
Red, Green, Blue의 3개의 channel로 구성되어 있는 영상이며, 각 픽셀마다 RGB의 값을 가지고 있다. uint8의 범위인 0~255로 R, G, B의 값이 표현되며 표현된 R, G, B값의 조합으로 색상이 표현된다. OpenCV에서는 영상이 B, G, R의 순서로 구성 되어있다.
# color
blue = [255,0,0];green = [0,255,0];red = [0,0,255]
color_blue= np.array([[blue,blue,blue,blue,blue],
[blue,blue,blue,blue,blue],
[blue,blue,blue,blue,blue],
[blue,blue,blue,blue,blue]],np.uint8)
color_green = np.array([[green,green,green,green,green],
[green,green,green,green,green],
[green,green,green,green,green],
[green,green,green,green,green]],np.uint8)
color_red = np.array([[red,red,red,red,red],
[red,red,red,red,red],
[red,red,red,red,red],
[red,red,red,red,red]],np.uint8)
# color shape : (4, 5, 3)
Blue
[B,G,R] | [255,0,0] | [255,0,0] | [255,0,0] | [255,0,0] |
---|---|---|---|---|
[255,0,0] | [255,0,0] | [255,0,0] | [255,0,0] | [255,0,0] |
[255,0,0] | [255,0,0] | [255,0,0] | [255,0,0] | [255,0,0] |
[255,0,0] | [255,0,0] | [255,0,0] | [255,0,0] | [255,0,0] |
Green
[B,G,R] | [0,255,0] | [0,255,0] | [0,255,0] | [0,255,0] |
---|---|---|---|---|
[0,255,0] | [0,255,0] | [0,255,0] | [0,255,0] | [0,255,0] |
[0,255,0] | [0,255,0] | [0,255,0] | [0,255,0] | [0,255,0] |
[0,255,0] | [0,255,0] | [0,255,0] | [0,255,0] | [0,255,0] |
Red
[B,G,R] | [0,0,255] | [0,0,255] | [0,0,255] | [0,0,255] |
---|---|---|---|---|
[0,0,255] | [0,0,255] | [0,0,255] | [0,0,255] | [0,0,255] |
[0,0,255] | [0,0,255] | [0,0,255] | [0,0,255] | [0,0,255] |
[0,0,255] | [0,0,255] | [0,0,255] | [0,0,255] | [0,0,255] |