해당 포스트는 "열혈강의 영상처리 프로그래밍" 책의 내용을 요약한 것이다.
※영상 데이터 클래스
영상 데이터 클래스는 멤버 변수로 영상의 픽셀 데이터와 영상 규격 정보(영상의 가로/세로 크기, 색상 채널 수, 픽셀 당 비트 수 등)이 있고 멤버 함수로는 영상의 생성/복사, 픽셀 값 설정, 파일 입출력 등 영상을 다루는 데 필요한 가장 기초적인 기능들이 있다. OpenCV와 같은 라이브러리에 영상 데이터 클래스가 잘 구현되어 있기 때문에 실제로 구현하는 일은 거의 없다.
- 영상 데이터 클래스 목적
: 편리한 영상 데이터 저장과 영상 처리 함수의 손쉬운 사용
<예제를 통해서 볼 예정>
*일단 win32 콘솔 응용 프로그램으로 프로젝트 만든다.
ex1) CMyImage 클래스를 템플릿으로 정의한다.
- 픽셀 데이터 : 일반적으로 픽셀 데이터는 unsigned char(BYTE : windef.h 헤더파일에 typedef로 정의되어 있음)형을 가진다. 따라서 회색조 영상에서 각 픽셀은 0~255, 컬러 영상에서는 rgb 방식으로 채널마다 1byte 씩 할당하여 각 픽셀은 255*255*255가지의 색상 표현이 가능하다. 하지만 픽셀 데이터가 항상 BYTE형이 아니라 실수 값도 가질 수 있다. 따라서 CMyImage 클래스를 작성할 때 여러 데이터 형식을 편리하게 사용할 수 있도록 템플릿으로 정의한다.
//CMyImage.h #pragma once #include <windows.h>
template <typename T> class CMyImage { public: CMyImage(void) {} ~CMyImage(void) {} protected: T* m_pImageData; //영상의 픽셀 데이터가 저장되는 배열 }; //타입형을 일일이 쓰면 번거로워 typedef 예약어를 이용해 클래스형 선언 typedef CMyImage<BYTE> CByteImage; typedef CMyImage<int> CInteImage; typedef CMyImage<float> CFloatImage; typedef CMyImage<double> CDoubleImage;
'영상처리 프로그래밍' 카테고리의 다른 글
영상 데이터 클래스 구현(4) (0) | 2017.06.04 |
---|---|
영상 데이터 클래스 구현(3) (0) | 2017.06.04 |
영상 데이터 클래스 구현(2) - 픽셀 데이터와 영상 정보 (0) | 2017.06.04 |
기타 MFC (0) | 2017.06.04 |
영상 처리 프로그래밍 시작/기초 (0) | 2017.06.04 |