본문 바로가기

programming/Image Processing

(9)
OpenCV로 배우는 영상처리 및 응용:: 9장 9장 1. 주파수 변환 영역의 처리 과정에서 대해서 간략히 기술하시오. 입력영상을 주파수 영역으로 변환 후 얻어진 계수의 해당 주파수 영역을 처리하고 주파수 역변환을 통해 공간영역의 영상으로 변환하여 결과영상이 출력되어진다. 2. 영상에서 저주파 공간 영역과 고주파 공간 영역에 대해서 아는 대로 설명하시오. 저주파 공간영역은 화소 밝기의 변화가 없거나 일정한 부분으로 영상에서 대부분 배경부분, 객체의 내부에 존재한다. 고주파 공간 영역은 화소 밝기의 변화가 심하고 영상에서 보통 경계부분이나 객체의 모서리 부분에 있다. 3. 2차원 DFT를 수행하는 과정에 대해서 설명하시오. 2차원 평면 상에서 이산 푸리에 변환과 역변환은 영상의 가로방향으로 1차 푸리에 변환과 역변환을 한 후, 세로방향으로 다시 1차 푸..
OpenCV로 배우는 영상처리 및 응용:: 3장 OpenCV 로 배우는 영상 처리 및 응용 연습문제 1. 데이터를 저장하고 다루는 자료 구조의 차원에서 매트릭스와 벡터의 차이는 무엇인가? -벡터 : 동일한 유형의 데이터로 구성되어 있는 1차원 데이터 구조 -매트릭스: 동일한 유형의 2차원 데이터 구조 2. 클래스(class)의 정의는 무엇이며, 구조체와 큰 차이는 무엇인가? -클래스란 동일한 속성을 갖는 객체들의 집합으로 하나의 데이터 타입이며, 함수를 포함하지 않는 구조체와 달리 클래스는 함수도 포함할 수 있다. 3. Point_ 클래스와 Size_ 클래스의 세부 자료형에 대해서 기술하고, 객체 선언을 하시오. Point_ : Point2i(Point), Point2I, Point2f, Point2d 자료형이 있다. Size_ : Size2i(Siz..
OpenCV로 배우는 영상처리 및 응용:: 2장 OpenCV 로 배우는 영상 처리 및 응용 연습문제 1. 오픈소스(Open Source)란 무엇인가? -무상으로 공개된 소스코드 또는 소프트웨어를 말함 2. 대부분의 오픈 소스 API들은 동적연결라이브러리(DLL) 파일 형태로 제공된다. DLL 파일을 사용하는 이유는 무엇인가? -프로그램 내에서 함수의 호출 정보만을 포함하고 목적 코드를 실행 시간에 호출하여 실행 하므로 메모리를 절약하고 디스크 공간을 줄일 수 있다. 뿐만 아니라 업그레이드나 출시 후 지원을 쉽게 할 수 있는 장점들이 있기 때문이다 3. OpenCV 에서 제공하는 DLL 파일들을 사용하려면 해당 응용 프로그램이 DLL 파일이 있는 디렉터리에 접근할 수 있어야 한다. 그 세가지 방법을 적으시오. 1) DLL 파일을 현재 프로젝트의 실행 디..
OpenCV로 배우는 영상처리 및 응용:: 1장 1. 디지털 영상의 정의는 무엇인가? -영상은 기본적으로 2차원 함수 f(x, y) 로 정의되며, 여기서 x와 y는 공간상의 좌표를 의미함 -어떤 좌표에 해당하는 지점의 진폭 값을 “intensity” 혹은 영상의 “gray level” 이라고 부르며 함수 f 에서 x, y, intensity 값들이 유한하며 이산의 양을 가지는 영상을 디지털 영상이라고 정의할 수 있음 -밝기 값과 위치 값을 가진 일정 수의 화소들로 구성되어 있음 2. 디지털 영상 처리 란 무엇인가? -디지털 영상처리는 디지털 컴퓨터를 이용해 디지털 이미지를 각종 기법들을 이용해 처리하는 것을 말함. 어떤 목적을 위해 수학적 연산을 이용해 화소들에 대해 변화를 주는 것 3. 저수준의 영상 처리와 고수준의 영상 처리의 차이점은 무엇인가? ..
opencv 4.3.0 프로젝트 설정 프로젝트 속성 설정(vc14는 visual studio2015) [모든 구성] 속성 -> C/C++ / 일반 / 추가 포함 디렉터리 C:\opencv-4.3.0\build\include [모든 구성] 속성 -> 링커 -> 일반 -> 후가 라이브러리 디렉터리 C:\opencv-4.3.0\build\x64\vc14\lib [모든 구성] 속성 -> 디버깅 -> 환경***템플릿해도 항상 재설정 PATH=C:\opencv-4.3.0\build\x64\vc14\bin;%PATH% ​[디버깅] 속성 -> 링커 -> 입력 -> 추가 종속성 opencv_world430d.lib; ​[릴리즈] 속성 -> 링커 -> 입력 -> 추가 종속성 opencv_world411.lib sample code) #include "open..
OpenCV 최종과제 OpenCV 최종과제 과제1. 라인인식 //라인인식 프로그램 #include #include int main() { IplImage *frame; //원본영상 프레임의 정보를 담고 있는 구조체의 시작주소 저장 IplImage *dst; //결과영상 프레임의 정보를 담고 있는 구조체의 시작주소 저장 int threshold = 180; //임계값 설정 int i, j, index; //반복문 첨자, 채널의 인덱스 저장할 변수 int width, height; //프레임의 가로,세로 int drawx=0, drawy=0; //한 프레임에서 검출된 픽셀의 x좌표의 합,y좌표의 합 int resultx = 0, resulty = 0; //라인의 무게중심 int nCount = 0; //검출된 픽셀의 갯수 int..
OpenCV를 이용한 영상처리::11장~12장 과제 11장 과제 과제1. 카메라로부터 들어오는 컬러영상에서 손(hand)영역을 검출하여 검정색으로 표시하고 손영역의 무게중심을 구하여 영상의 우측상단에 출력하고 중심점에 빨간색원을 그려주는 프로그램을 작성하시오. 또한, 명령창에도 중심의 좌표를 실시간으로 출력하라. #include #include #include //void on_mouseEvent(int event, int x, int y, int flags, void* param); int main() { IplImage *frame; // 원본영상 IplImage *dst; // 색 검출 영상 int width, height; // 창의 가로, 세로 int i, j, index;//반복문 첨자 unsigned char R, G, B;//각 채널에 해당..
OpenCV를 이용한 영상처리::4~6장 과제 4장 과제1 각자 카메라로 촬영한 정지영상을 이용하여 에제 4.1,4.2를 수행하라. 필요하면 그림판 등을 이용하여 영상파일의 포맷을 변환하라. 4.1예제 #incude #include void main() { IplImage *image; IplImage *R_plane; IplImage *G_plane; IplImage *B_plane; image = cvLoadImage("sj.jpg", -1); //원본영상 그대로 로드 cvNamedWindow("image", CV_WINDOW_AUTOSIZE); //영상 출력을 위한 윈도우를 만든다//사이즈 자동,크기조절x cvNamedWindow("R_channel", CV_WINDOW_AUTOSIZE);//0이면 조절가능 1은 조절안됨 cvNamedWindo..