본문 바로가기
영상처리 프로그래밍/Visual C++ 영상 처리 프로그래밍

영상 처리 개요

by Glory_Choi 2022. 6. 24.
반응형

디지털 영상 처리란?

영상처리란 영상을 대상으로 하는 신호처리의 한 분야.

영상으로부터 원하는 정보를 얻기 위해 행하는 모든 종류를 처리를 의미.

 

영상처리 분야

-영상의 화질 향상

-영상의 기하학적 변환

-영상 분할

-객체의 모양 기술

-객체 인식

-영상 압축

-동영상 처리

 

다양한 영상 처리 응용 분야

-얼굴 검출과 얼굴 인식

-내용 기반 영상 검색

-컬러 영상의 화질 개선

-의료 영상 분야

-문서 처리

-공장 자동화

-인공지능 로봇과 자율 주행 자동차

 

영상의 기본 단위

픽섹(pixel)또는 화소라고 함.

 

영상 표현 방법

영상처리에서 주로 사용하는 영상은 그레이스케일 영상.

 

그레이스케일 영상이란?

색상 정보 없이 오직 밝기 정보만으로 구성된 영상, 흑백 사진처럼 검정색, 회색, 흰색으로 구성. *반대로는 트루컬러 영상이 있음

그레이스케일 영상에서 하나의 픽셀은 0부터 255 사이의 정숫값을 가질 수 있음.

하나의 픽셀을 표현하기 위하여 컴퓨터에서 1바이트의 메모리 공간을 사용하기 때문.

픽셀 값이 0이면 검은색을 나타냄.

픽셀 값이 1이면 흰색을 나타냄.

 

2차원 배열 처리

unsigned char a[480][640];

unsigned char가 픽셀을 표현하기에 가장 적합한 자료형.

 

실제 영상 처리 프로그래밍

정적 배열 대신 프로그램 동작시 배열의 크기를 결정할 수 있는 동적 배열을 주로 사용.

 

2차원 배열을 동적 할당

unsigned char **p;

p=new unsigned char*[h];

for(int I=0; I < h; i++)

{

p[i] = new unsigned char[w];

memset(p[i], 0, sizeof(unsigned char)*w);

}

 

할당 해제

for(int I=0; I < h; i++)

delete[] p[i];

delete[] p;

 

변형된 2차원 배열 동적 할당

unsigned char **p;

p = new unsigned char*[h];

p[0] = new unsigned char[w*h];

for(int I=0; I < h; i++)

p[i] = p[i 1] + w;

memset(p[0], 0, w * h);

 

배열 메모리 공간 접근

unsigned char *p1 = p[0];

for(int I=0; I < w * h; i++)

p[i] = p[i] + 1;

 

할당 해제

delete[] p[0];

delete[] p;

반응형

'영상처리 프로그래밍 > Visual C++ 영상 처리 프로그래밍' 카테고리의 다른 글

영상의 산술 연산  (0) 2022.07.18
화질 향상 기법  (0) 2022.07.14
[MFC] CClientDC  (0) 2022.07.04
BMP 파일(비트맵 파일)의 이해  (0) 2022.07.01