본문 바로가기

Programming/C++124

opencv video to sequential images #include "opencv2/opencv.hpp"using namespace cv; int main(int, char**){ VideoCapture cap(0); // open the default camera //VideoCapture cap("chaplin.mp4"); if (!cap.isOpened()) // check if we succeeded return -1; Ptr pMOG = new BackgroundSubtractorMOG2(); Mat fg_mask; Mat frame; int count = -1; for (;;) { // Get frame cap >> frame; // get a new frame from camera // Update counter ++count; // Back.. 2018. 6. 1.
객체 지향 기본 개념 캡슐화(묶음+보호) 클래스 내부에서 여러 속성과 여러 오퍼레이션을 함께 묶음을 의미.클래스 내부의 속성이나 오퍼레이션을 외부에 노출하지 않고 보호하는 것. 추상화(공통) 객체에서 공통된 속성과 행위를 추출하는 것. 객체 기술 사전에 따르면 중요하지 않거나, 주 관심 대상이 아닌 자세한 부분은 감추거나 무시하고, 가장 중요하고, 근간이 되고, 다른 대상들과 구분될 수 있는 면만을 포함하고 있는 모델이며, 공통점을 강조하기 위해 차이점을 제거한 결과물. 상속 자신이 가지고 있는 것을 하위에 물려주거나, 하위에서 물려받는 것. 재사용으로 인해 코드가 줄어듬. 하위 클래스에서 오퍼레이션을 다시 정의하지 않고 상속받아서 사용함으로써 코드가 줄어듬. 좀 더 범용성 있게 사용할 수 있음. 또한 자신만의 자료와 메소드.. 2018. 5. 7.
정적 라이브러리 만들기 및 사용 C++ win32 콘솔 응용 프로그램, staticlibrary 지정, 미리 컴파일된 헤더 선택 취소. 정적 라이브러르에 클래스 추가// MathFuncsLib.h namespace MathFuncs { class MyMathFuncs { public: // Returns a + b static double Add(double a, double b); // Returns a - b static double Subtract(double a, double b); // Returns a * b static double Multiply(double a, double b); // Returns a / b static double Divide(double a, double b); }; } // MathFuncsLib.cp.. 2017. 10. 23.
visual studio 정적 라이브러리 lib 추가 방법 1. header (*.h) 디렉토리 추가 : C/C++ -> General -> Additional Include Directories 2. lib 등 빌드된 라이브러리 바이너리 디렉토리 추가Linker -> General -> Additional Library Directories 3. lib 파일 지정 : 파일명을 적는다.Linker -> Input -> Additional Dependencies 출처: http://scripter.co.kr/294 [superAction] 표준 헤더 파일 위치 찾기https://m.blog.naver.com/PostView.nhn?blogId=jwj981417&logNo=220128463336&proxyReferer=https%3A%2F%2Fwww.google.c.. 2017. 10. 18.
Function Template / Function template #include using namespace std; templatevoid Swap(T& num1, T& num2){T temp = num1;num1 = num2;num2 = temp;} int main(){int num1 = 10, num2 = 40;cout 2017. 10. 18.
Struct #pragma warning(disable:4996) #include #include char copy_str(char *dest, char *src); struct Books {char name[30];char auth[30];char publ[30];int isborrowed;}; int main() {struct Books Harry_Potter; copy_str(Harry_Potter.name, "Harry Potter");copy_str(Harry_Potter.auth, "J.K Rolling");copy_str(Harry_Potter.publ, "Scholastic");Harry_Potter.isborrowed = 0; printf("Book name: %s\n", Harry_Potter.na.. 2017. 10. 18.
Function pointer 특정 변수에 대한 메모리 주소를 담을 수 있는 변수를 포인터 변수,특정 함수에 대한 메모리 주소를 담을 수 있는 변수를 함수 포인터. 프로그램 코드가 간결해집니다.중복되는 코드를 줄일 수 있습니다.상황에 따른 함수를 호출할 수 있습니다. int (*FuncPtr)(int, int) int add(int first, int second)1. FuncPtr = add2. FuncPtr = &add #include #include typedef int(*calcFuncPtr)(int, int); int plus(int first, int second){return first + second;} int minus(int first, int second){return first - second;} int calc.. 2017. 10. 18.
opencv mouseevent #include "opencv.hpp"using namespace cv;using namespace std;void onMouse(int event, int x, int y, int flags, void* param);int main(){Mat dstImage(512, 512, CV_8UC3, Scalar(255, 255, 255)); imshow("dstImage", dstImage);setMouseCallback("dstImage", onMouse, (void *)&dstImage); waitKey(); return 0;}void onMouse(int event, int x, int y, int flags, void* param){Mat *pMat = (Mat *)param;Mat image = Ma.. 2017. 9. 5.
harris corner detection #include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include #include #include using namespace cv;using namespace std; /// Global variablesMat src, src_gray;int thresh = 200;int max_thresh = 255; char* source_window = "Source image";char* corners_window = "Corners detected"; /// Function headervoid cornerHarris_demo(int, void*); /** @function main */int main(int argc, cha.. 2017. 9. 3.
C 언어의 핵심 함수 함수를 정의하고 선언하기변수의 범위에 대해서재귀적 함수 호출에 대해서 살펴봅시다 프로그램 구성에 있어서 중요한 위치를 차지하는 것을 가리켜 핵심이라고 일컬어야 합니다. 함수를 잘 구성하는 프로그래머는 실력 있는 프로그래머이고, 함수를 적절히 구성하지 못하는 프로그래머는 아무리 문법적으로 탄탄해도 그 실력을 인정받지 못합니다. 함수를 정의하고 선언하기함수를 만들어야 하는 이유나누어서 정복하기. 함수에 대한 기본적인 이야기구현하고자 하는 함수의 특성에 따라서 전달 인자가 없거나 반환 값이 없을 수도 있습니다. #pragma warning(disable:4996) #include int main(void){int a = 0;int b = 0; a = printf("12345 \n");b = printf("I .. 2017. 8. 4.