Table of Contents
픽셀과 이미지 개념 목차
픽셀과 이미지 개념
이미지
‘이미지 image ’ 픽셀이라고 부르는 작은 점이 2차원 격자 상에 배치되어 구성됨.
- 이미지 너비 : 2차원 격자의 가로 픽셀 개수
- 이미지 높이 : 세로 픽셀 개수
- 이미지 크기 : 이미지에 포함된 픽셀의 개수로, 이미지 너비 × 이미지 높이
opneCV에서의 이미지 좌표(크기 9x9)(좌표 순서가 (x, y) 가 아니라(y, x) 라는 점에 주의)
(x, y) 좌표를 사용하여 이미지를 구성하는 하나의 픽셀을 지정 가능
OpenCV에서는 이미지의 왼쪽 위에 원점 (0, 0) 이 위치함
- 왼쪽에서 오른쪽으로 이동할수록 x좌표가 증가
- 위에서 아래로 이동할수록 y좌표가 증가
OpenCV함수에 따라서는 (x, y) 순서를 요구하는 경우도 있음.
컬러 이미지를 구성하는 픽셀에 값을 넣기
OpenCV에서는 RGB 색공간 대신에 픽셀을 구성하는 채널의 순서가 Blue, Green, Red
인 BGR 색공간
을 사용
- RGB 색공간에서 색의 배치 순서만 바뀐 것 이다!!
컬러 이미지의 경우 3개의 채널을 가지기 때문에 하나의 픽셀 마다 3개의 값이 포함되어 있음. - 값이 (0,0,0) 인 픽셀은 검은색
- 값이(0,0,255) 인 픽셀은 Red 채널만 255이므로 빨간색으로 보임
more
[ex]
컬러이미지를 그레이스케일 이미지로 변환
하나의 채널을 갖는 픽셀로 구성
픽셀 당 하나의 값을 갖도록 구성됨
허프 변환, 에지 검출, 컨투어 검출 등을 하기 전에 변환 해 줌.
1) Mat img_color;
이미지 읽어오기
2) 이미지를 그레이 스케일로
- 이미지를 읽어서 그레이 스케일 이미지로 변환
img_color = imread("이미지 이름", IMREAD_GRAYSCALE);
- 이미지 색채널 변경 ( Converter Color )
cvtColor( input Array, output Array, flag)
- input Array: 이미지 입력받음
- flag 에 대한 옵션으로 이미지 색채널을 변경 후(이에 관한 옵션은 매우 많으므로 visual studio에서 확인)
- output Array에 저장
그레이 스케일 이미지를 이진화 이미지로 변환
모든 픽셀이 0 또는 255의 값을 갖음
배경에서 특정 오브젝트를 분리하거나 컨투어 검출 전 선처리 등을 위해 이미지를 이진화 필요
값이 양극으로 나뉘어 경계선이 뚜렷해짐
thresh 임계값: 이 값을 기준으로 이진화 된다
[코드 구현] threshold( src, dst, threshold_value, Max_value, threshold_type)
- src : 입력할 이미지 변수 grayscale 이미지를 입력 필요
- dst : 필터가 적용되어 저장될 이미지 변수
- threshold_value : 임계 값 (0~255), 이진화 시킬 기준 값을 입력
- Max_value
임계 값 이상의 픽셀들에 적용할 값,
0 또는 Max_value 의 두 값으로만 이미지를 표현하게 됨, 보통 255 를 사용. - threshold_type : 이진화 방법
- THRESH_BINARY : 이진화, threshold 값 이상 : 1, 이하 : 0(black) 으로 처리
- THRESH_BINARY_INV : 역 이진화
- threshold 값 이상 : 0 (black)
- threshold 값 이하 : 1 로 처리
- 즉, THRESH_BINARY의 흑백을 바꿔둔 것
자세한 설명