* 앞으로 작성할 글은 "openCV 3 computer vision application programming cookbook" 서적을 바탕으로 학습하고 추가 스터디하여 작성할 것이다. opencv에서 이미지를 읽어오는 imread 함수에 대해 알아보겠다. 내용은 문서를 기준으로 작성하였으며, 예제 코드를 실행해보았다. 함수의 형태는 다음과 같다. Mat cv::imread ( const String & filename, int flags = IMREAD_COLOR) 문서의 설명은 다음과 같다. 특이사항은 다음과 같다. - 파일이 없거나, 퍼미션 등으로 read가 실패할 경우 empty matrix를 리턴한다. -> 반드시 제대로 reading이 되었는지 확인이 필요하다. - flag를 통해 image..
OpenCV 설치https://opencv.org/releases.html 접속버전 선택 - 원하는 버전 및 os에 맞게 선택한다.sourceForge 사이트로 이동 후 exe 설치파일이 다운로드 된다.원하는 설치 경로를 지정하여 설치한다. (버전 변경 및 혹시 모를 재설치를 위하여 "C:\openCV"에 설치하였다.)환경변수 설정 - 내 PC 우측클릭 - 속성 - 고급 시스템 설정 - 환경 변수 - 시스템 변수 - Path - 편집 - 새로 만들기 - 입력할 내용은 PC 환경에 따라 달라진다. (예 : C:\openCV_3.4.5\opencv\build\x64\vc15\bin) - 4번에서 설치했던 경로와, 해당 폴더를 직접 들어가서 경로가 중간에 잘못된 점이 없는지 확인한다. - vc 뒤 숫자 차이는..
int const * p; // 1 int * const p; // 2 int const * const p; // 3 const int * p; // 4 p = (int *)0x1000; // 가 p++; // 나 *p = 100; // 다 a = *p; // 라 const는 위치에 따라서 의미가 헷갈린다.const는 후식이다. (앞에 있는 애를 상수화) 따라서 1번 - int2번 - *3번 - int, *4번처럼 맨 앞에 붙은 경우 예외적으로 뒤를 상수화시킨다. int 결국1번 - 값 2번 - 주소3번 - 주소, 값4번 - 값변경이 불가 번호 별 불가능한 것은?1 - 다 (나 번은 p++은 포인터의 주소 변경이다. 가능함)2 - 가, 나3 - 가, 나, 다4 - 다
#include // 40을 출력하려면? int *f1(void) { static int a[4] = { 1,2,3,4 }; return a; } int *f2(void) { static int a[4] = { 10,20,30,40 }; return a; } int *(*fa[2])() = { f1, f2 }; int f4(void) { return 1; } ?? func1(void) { return fa; } ? ? func2( ?? p ?? ) { return func1()[p()]; } void main(void) { printf("%d\n", func2(f4) ? ? ); } /* int *f1(void) { static int a[4] = { 1,2,3,4 }; return a; } int *f..
#include struct _st { int num; char * name; }; // ARK를 인쇄하려면? ? ? f2(void) ? ? { static struct _st a[2][3] = { {1,"KIM"}, {2,"SONG"}, {3, "KI"} }, { {4, "KANG"}, {5, "PARK"}, {6, "LEW"} }}; return a; } ? ? f1(int num) ? ? { return f2()[num]; } void main() { printf("%s\n", f1(0)); } /* // a -> struct _st [2][3] -> 배열이니 [2]를 포인터로 struct _st(*f2(void))[3] { static struct _st a[2][3] = {{{ 1,"KIM" }..
#include ? ? f2(void) ? ? static int a[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 }; return &a; } ? ? f1(void) ? ? return f2()[0]; } void main() { printf("%d\n", f1 ??); system("pause"); } /* // a -> int [3][4] // &a -> int (*)[3][4] int (*f2(void))[3][4]{ static int a[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 }; return &a; } // f2() -> &a 리턴 // f2()[0] -> a int (*f1(void))[4]{ return f2()[0]; } // f1() ->..
#include ? ? f2(void) ? ? static int a[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 }; return a; } ? ? f1(void) ? ? return f2()[2]; } void main() { printf("%d\n", f1 ??); system("pause"); } /* int(*f2(void))[4]{ static int a[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 }; return a; } // f2는 int (* (void))[4] 를 리턴한다. // f2()의 타입은 int (*) [4] // f2()[2]의 타입은 int [4] // 배열 상태이기 때문에 int *로 변경한다. int(*f1(void)) { re..
#include ?? f2(void) ?? static int a[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 }; return a; } ?? f1(void) ?? return f2; } void main() { printf("%d\n", f1()()[1][2]); system("pause"); } /* int (*f2(void))(int) { static int a[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 }; return a; } // f2 또한 함수이기 때문에 * 하나 추가하는 것을 실수하지 말 것 int (*(*f1(void))(void))[4]{ return f2; } */
첫 줄에 미로의 크기 X, Y(1≤X, Y≤100)가 주어진다.둘째 줄에 출발점 x, y 좌표와 도착점 x, y 좌표가 공백으로 구분하여 주어진다.셋째 줄부터 미로의 정보가 길은 0, 벽은 1로 공백이 없이 들어온다.주의 사항으로, 좌표는 좌측상단이 가장 작은 위치이며 이 위치의 좌표는 (1,1)이다. #include #include using namespace std; int wp; int rp; struct queue { int x; int y; int time; }; queue myQueue[10000]; bool isNotEmpty() { return wp > rp; } void push(queue input) { myQueue[wp++] = input; } queue pop() { return ..
철수의 동생이 다니는 학교에서는 ‘구슬 집어넣기 게임’ 선풍적인 인기를 끌고 있다. 철수 동생은 반 친구들과 이 게임의 성적을 놓고 경쟁을 하고 있다. 어느 날, 철수의 동생이 시무룩한 얼굴을 하고 집에 들어왔다. 친구들보다 좋은 성적을 내지 못했다고 우울했던 것이다. 그래서 철수는 동생을 위해 게임에서 최고 성적을 내는 방법을 알려주는 프로그램을 만들기로 했다. 게임은 다음 룰에 의해 진행된다. 1.게임판에는 빨간구슬, 파란구슬, 벽, 그리고 목표구멍이 있다.2. 플레이어는 총 10회 게임판을 기울일 수 있다. (방향 : 상하좌우) 3. 플레이어가 게임판을 기울이게 되면 해당 방향으로 빨간구슬과 파란구슬이 한 칸 이동한다.4. 이동방향에 벽이 있는 구슬은 움직일 수 없다. 5. 이동 시 빨간 구슬과 파..
- Total
- Today
- Yesterday
- Sobel
- Filter
- canny
- canny operator
- adaptive thresholding
- upsampling
- dilation
- mean filter
- high pass filter
- bilateral filter
- 영상처리
- gradient
- black top hat
- Low pass filter
- segmentation
- difference of gaussian
- morphological operation
- morphology
- Line Detection
- OpenCV
- laplacian of gaussian
- top hat
- pyrUp
- hough transform
- erosion
- equalizing
- median filter
- direction detection
- pyrDown
- 캐니 엣지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |