OpenCV ÇÚµåºÏ v1, 2013 (´ÙÅ©pgmr, http://darkpgmr.tistory.com/46) 1. À̹ÌÁö Àбâ & ÀúÀå Mat img_color = imread("sample.jpg"); // color load Mat img_gray = imread("sample.jpg", 0);// gray load imwrite("fname.jpg", img); 2. À̹ÌÁö »ý¼º, º¹»ç, Çüº¯È¯, »ö»óº¯È¯, roi ¼³Á¤ int w = 320;// width int h = 240;// height // »ý¼º Mat img(h,w,CV_8UC1);//1ä³Î unsigned char Mat img(h,w,CV_8UC3);//3ä³Î unsigned char Mat img = Mat::zeros(h,w,CV_32FC1);//1ä³Î float Mat img = Mat::ones(h,w,CV_64FC3);//3ä³Î double unsigned char * img_buffer;// À̹ÌÁö¹öÆÛ Æ÷ÀÎÅÍ Mat img(h, w, CV_8UC3, img_buffer);//¸Þ¸ð¸® °øÀ¯ // ¿ø¼Ò ÃʱâÈ­ Mat img(h,w,CV_8UC1); img = Scalar(3); // img ¸ðµç ¿ø¼Ò°ª 3À¸·Î ÃʱâÈ­ // ÂüÁ¶, º¹»ç Mat img2 = img; // ¸Þ¸ð¸® °øÀ¯ Mat img2 = img.clone(); // º°µµ ¸Þ¸ð¸® Mat img2; img.copyTo(img2);//º°µµ ¸Þ¸ð¸® // Çüº¯È¯ º¹»ç Mat img1(h,w,CV_32FC1); Mat img2; img1.convertTo(img2, CV_8U); // gray-color º¯È¯ cvtColor(color, gray, CV_BGR2GRAY); cvtColor(gray, color, CV_GRAY2BGR); // roi ¼³Á¤ Rect roi; Mat sub_img = img(roi);//¸Þ¸ð¸®°øÀ¯ Mat sub_img = img(roi).clone();//º°µµ¸Þ¸ð¸® 3. ¿µ»ó Å©±âº¯°æ ¹× »óÇÏÁÂ¿ì ¹ÝÀü // Å©±â º¯°æ Mat dst; resize(img, dst, Size(new_w,new_h)); resize(img, dst, Size(), 0.5, 0.5);//scalex, scaley // ¿µ»ó ¹ÝÀü(flip) flip(img, dst, 0);// vertical flip flip(img, dst, 1);// horizontal flip flip(img, dst, -1);// vertial & horizontal flip 4. À̹ÌÁö¿¡ ±×¸®±â (drawing) Rect rc(x,y,w,h); Scalar color(B,G,R); int thickness=1; // line thickness line(img, Point(x1,y1), Point(x2,y2), color, thickness); rectangle(img, rc, color, thickness); rectangle(img, rc.tl(), rc.br(), color, thickness); rectangle(img, rc, color, CV_FILLED); // filled rectangle Point center(rc.x+rc.width/2, rc.y+rc.height/2); Size radius(rc.width/2, rc.height/2); double rot_deg = 0; // rotation of ellipse double s_deg = 0; // start angle of arc double e_deg = 360; // end angle of arc ellipse(img,center,radius,rot_deg,s_deg,e_deg,color,thickness); ellipse(img,center,radius,rot_deg,s_deg,e_deg,color,CV_FILLED); int circle_radius = 10; circle(img, center, circle_radius, color, thickness); circle(img, center, circle_radius, color, CV_FILLED); putText(img, "text", Point(x,y), FONT_HERSHEY_SIMPLEX, 1., color, thickness); putText(img, "text", Point(x,y), FONT_HERSHEY_DUPLEX, 1., color, thickness); 5. À̹ÌÁö µð½ºÇ÷¹ÀÌÇϱâ (display) namedWindow("name"); // auto resized namedWindow("name",CV_WINDOW_NORMAL); // manual resize imshow("name", img); char ch = waitKey(); // ¹«ÇÑ ´ë±â char ch = waitKey(10); // 10 msec ´ë±â if(ch == 27) ... // ESC key if(ch == 32) ... // SPACE key destroyWindow("name"); destroyAllWindows(); 6. À¥Ä· ¿¬°áÇϱâ VideoCapture vc(0); if (!vc.isOpened()) return; // ¿¬°á½ÇÆÐ vc.set(CV_CAP_PROP_FRAME_WIDTH, 640); vc.set(CV_CAP_PROP_FRAME_HEIGHT, 480); Mat img; while(1){ vc >> img; if(img.empty()) break; imshow("cam",img); if(waitKey(10)==27) break; //ESC } destroyAllWindows(); 7. avi ºñµð¿À ÆÄÀÏ Àоî¿À±â VideoCapture vc("sample.avi"); if (!vc.isOpened()) return; // ºÒ·¯¿À±â ½ÇÆÐ Mat img; while(1){ vc >> img; if(img.emplty()) break; imshow("video",img); if(waitKey(10)==27) break; //ESC } destroyAllWindows(); 8. avi ºñµð¿À ³ìÈ­Çϱâ double fps = 15; int fourcc = CV_FOURCC('X','V','I','D'); // codec bool isColor = true; VideoWriter *video = new VideoWriter; if(!video->open("result.avi", fourcc, fps, Size(img_w, img_h), isColor)){ delete video; return; } Mat img; while(1){ // ... *video << img; // ... } delete video; ¡Ø ÄÚµ¦ ¸ñ·Ï: http://www.fourcc.org/codecs.php