SOBEL, PREWITT, ROBERTS, LAPLACIAN, GAUSSIAN, EROSION, DILTION, EMBOSSING 등의 이미지 프로세싱 (IMAGE MASKING)
*영*
다운로드
장바구니
목차
1) 프로그램 실행환경2) 사용언어
3) 이미지 파일
4) 프로그램 구조
5) Mask type
6) code 설명
1. 디지털 영상처리 (Digital Image Processing)란?
2. 윤곽선 검출(Edge Detection) Mask
본문내용
코드의 프로트 타입니다.class RawMask
{
public:
//마스크 타입을 분류하는 enum
enum MASKTYPE
{
SOBEL = 0, //연산속도가 비교적 느리며 잡음부분을 윤곽선으로 인식할 만큼 밝기 정도에 매우 민감
PREWITT, //SOBEL마스크와 유사하나 조금 덜 민감
ROBERTS, //매우 빠른 계산속도를 가지고 잡음에 민감하며 매우 분명한 윤곽선을 검출해낸다.
LAPLACIAN, //하나의 마스크만 사용하므로 매우 빠르고 매우 날카로운 윤곽선을 검출해낸다.
GAUSSIAN5X5, //윤곽선 제거에 사용됨
GAUSSIAN7X7, //윤곽선 제거에 사용됨
//CANNY, //방식만 설명 : 가우시안, 소벨, 프르윗 연속으로 사용
EROSION, //배경을 확장하고 물체를 축소시킨다.
DILATION, //물체를 확장시켜 배경이 축소된다.
EMBOSSING, //엠보싱 효과를 준다.
BLURING, //블러딩 효과를 준다.
HIGHUPFILTER, //고주파 강화 필터
HIGHDOWNFILTER, //고주파 약화 필터
LOWDOWNFILTER //저주파 약화 필터
};
protected:
TImgInfo* t_pImgInfo; //이미지 정보를 입력받을 포인터
unsigned char* t_pInImg; //입력받을 이미지의 Data를 저장할 포인터
unsigned char* t_pOutImg; //출력할 이미지의 Data를 저장할 포인터
//일반 mask
int t_mask3x3[3][3]; //마스크 사이즈가 3x3일 때 사용할 x좌표 배열
int t_mask5x5[5][5]; //마스크 사이즈가 5x5일 때 사용할 x좌표 배열
int t_mask7x7[7][7]; //마스크 사이즈가 7x7일 때 사용할 x좌표 배열
//확장 mask
int t_mask3x3e[3][3]; //마스크 사이즈가 3x3일 때 사용할 y좌표 배열
int t_mask5x5e[5][5]; //마스크 사이즈가 5x5일 때 사용할 y좌표 배열
int t_mask7x7e[7][7]; //마스크 사이즈가 7x7일 때 사용할 y좌표 배열
double t_Dmask3x3[3][3]; //마스크 사이즈가 3x3일 때 사용할 double type의 배열
int t_maskSize; //마스크 size가 3x3, 5x5, 7x7인지에 대한 구분자
int t_maskCnt; //마스크가 x좌표만 필요한지 xy자표가 필요한지를 구분해주는 구분자
protected:
bool t_SetRaw(char* pImgName, int width, int height); //Raw파일의 기본 data를 변수에 입력하는 함수
bool t_SetMask(int masktype); //Raw 파일을 어떤 마스크로 변형할 것인지 정하는 함수
public:
bool Create(int type, char* pImgName, int width, int height); //이미지를 위한 객체를 생성하는 함수
bool FlagCreate(); //이미지가 존재하는지 계속해서 확인하는 함수
void Destroy(); //생성된 객체를 소멸시키는 함수
bool Masking(int masktype); //입력한 이미지를 마스크를 이용하여 변형하는 함수
bool OutRaw(char* pOutImgName); //변형된 이미지를 출력하는 함수
void ShowImgInfo(void); //이미지의 정보를 Prompt창에 표시하는 함수
};
참고 자료
http://blog.naver.com/kamvo?Redirect=Log&logNo=60012818594압축파일 내 파일목록
lena.raw
Main.cpp
out.raw
RawMask.cpp
RawMask.dsp
RawMask.dsw
RawMask.h
RawMask.ncb
RawMask.opt
RawMask.plg
RawMask리포트.hwp
TImgInfo.h
TRawMask.h
Debug/Main.obj
Debug/RawMask.exe
Debug/RawMask.ilk
Debug/RawMask.obj
Debug/RawMask.pch
Debug/RawMask.pdb
Debug/vc60.idb
Debug/vc60.pdb
Main.cpp
out.raw
RawMask.cpp
RawMask.dsp
RawMask.dsw
RawMask.h
RawMask.ncb
RawMask.opt
RawMask.plg
RawMask리포트.hwp
TImgInfo.h
TRawMask.h
Debug/Main.obj
Debug/RawMask.exe
Debug/RawMask.ilk
Debug/RawMask.obj
Debug/RawMask.pch
Debug/RawMask.pdb
Debug/vc60.idb
Debug/vc60.pdb