• Home
  • About
    • Yerim Oh photo

      Yerim Oh

      Happy and worthwhile day by day :)

    • Learn More
    • Email
    • LinkedIn
    • Instagram
    • Github
    • Youtube
  • Posts
    • All Posts
    • All Tags
  • Projects

[02] OpenCV 영상처리

08 Feb 2020

Reading time ~2 minutes

Table of Contents
  • 픽셀과 이미지 개념 목차
  • 픽셀과 이미지 개념
  • 이미지
    • 컬러 이미지를 구성하는 픽셀에 값을 넣기
    • 컬러이미지를 그레이스케일 이미지로 변환
    • 그레이 스케일 이미지를 이진화 이미지로 변환

픽셀과 이미지 개념 목차

  • 이미지
    • 컬러 이미지를 구성하는 픽셀에 값을 넣기
    • 컬러이미지를 그레이스케일 이미지로 변환
    • 그레이 스케일 이미지를 이진화 이미지로 변환

픽셀과 이미지 개념

이미지

‘이미지 image ’ 픽셀이라고 부르는 작은 점이 2차원 격자 상에 배치되어 구성됨.

  • 이미지 너비 : 2차원 격자의 가로 픽셀 개수
  • 이미지 높이 : 세로 픽셀 개수
  • 이미지 크기 : 이미지에 포함된 픽셀의 개수로, 이미지 너비 × 이미지 높이

opneCV에서의 이미지 좌표(크기 9x9)(좌표 순서가 (x, y) 가 아니라(y, x) 라는 점에 주의) image

(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] image image


컬러이미지를 그레이스케일 이미지로 변환

하나의 채널을 갖는 픽셀로 구성
픽셀 당 하나의 값을 갖도록 구성됨
허프 변환, 에지 검출, 컨투어 검출 등을 하기 전에 변환 해 줌.
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에 저장
      image image

그레이 스케일 이미지를 이진화 이미지로 변환

모든 픽셀이 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의 흑백을 바꿔둔 것
        자세한 설명

image image



OpenCV Share Tweet +1