// OpenCV 기본 사용법
int OCVBasicTest()
{
    Mat img = imread("d:\\sample.jpg");    // color load
    //CV_LOAD_IMAGE_GRAYSCALE : 0
    Mat img_gray = imread("d:\\sample.jpg", 0);// gray load
    //imwrite("d:\\write.jpg", img_color);
       
    // Mat 생성
    int h=img.rows, w=img.cols ;
    unsigned char * img_buffer;// 이미지버퍼 포인터
    img_buffer = (UCHAR*)calloc( 1, h * w *3);
    Mat img2(h, w, CV_8UC3, img_buffer);//메모리 공유
    //Mat img4 = Mat::zeros(h,w,CV_32FC1);//1채널 float
    //Mat img5 = Mat::ones(h,w,CV_64FC3);//3채널 double
    Mat img4 = Mat::ones(h,w,CV_64FC3);

    // Mat 초기화
    Mat img3 = img;//메모리 공유   

    // Mat 복사
    //img4 = img;        // 메모리 공유, 복사는 안함
    //img4 = img.clone();    // 복사, 별도 메모리
    //img.copyTo(img4);        // 복사, 별도 메모리   
    //img.convertTo(img4, CV_8U);    // 형변환 복사, 별도 메모리

    // 초기화
    img2 = Scalar(CV_RGB(255,0,0)); // img 모든 원소값  초기화
    //img = Scalar(CV_RGB(255,255,0));
    //img_gray = Scalar(CV_RGB(255,255,0));

    // gray-color 변환
    cvtColor(img, img4, CV_BGR2GRAY);//  color -> gray
    cvtColor(img_gray, img4, CV_GRAY2BGR);//gray -> color

    // roi 설정
    int x=10, y=10, width=100, height=100;
    Rect roi(x,y, width, height);//
    Mat sub_img = img(roi);//메모리공유
    //Mat sub_img = img(roi).clone();//별도메모리

    //글자 출력
    int B=0,G=0, R=0;
    Scalar color(B,G,R);
    int thickness=1;    // line thickness

    //트랙바
    namedWindow("track win1", 1);
    createTrackbar( "track", "track win1", &nTrack, 100, on_trackbar1 );
    //콜백함수 : void on_trackbar1( int, void* )

    //마우스
    //setMouseCallback("mouse", on_mouse1, 0);
    //콜백함수 : void on_mouse1(int event, int x, int y, int flags, void* param) { }   
    char  str[256];
    while(1)
    {
        //namedWindow("win");
        sprintf(str, "[ %d ]", nTrack);
        putText(img4, str, Point(2,20), FONT_HERSHEY_SIMPLEX, 1., color, thickness);
        imshow( "win", img4);
        //Sleep(30);
        //char ch = waitKey();    // 무한 대기       
        char ch = waitKey(30);    // 30 msec 대기
        if(ch == 27) break;    // ESC key, SAPCE : 32       
       
    }

    destroyWindow("win");
    destroyAllWindows();

    return 1;
}


//

docs.opencv.org/opencv_cheatsheet.pdf‎


opencv_cheatsheet.pdf


http://docs.opencv.org/


http://darkpgmr.tistory.com/46


반응형
Posted by codens