[OpenCV] 1. 영상 구조와 표현 방법

최재혁·2022년 10월 4일
0

opencv-python

목록 보기
2/10

Pixel

💡 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로 구분된다.

Grayscale

빛의 정도로 영상을 구성하게 되고 이는 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) 영상

02551202550
255120255120255
02551202550
255120255120255

Color

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]
profile
Autonomous driving vision

0개의 댓글