opencv常用的小工程


本文中将列出opencv需常用的最小工程,以方便今后做测试用。

  工程环境为vs2010+opencv2.3.1

一、opencv读取图片并显示出来:

  代码为:

  C++ Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include  "stdafx.h"
#include <opencv2/highgui/highgui.hpp>

using  namespace  cv;

int  main( int  argc, unsigned  char*  argv[])
{
        Mat  img_src;
        for  (;;)
        {
                img_src=imread( "lena.jpg");
                imshow( "lena_show",img_src);
                waitKey( 30);
        }
        return  0;
}

二、opencv读取avi文件并显示出来:

  注意有些avi格式的视频是读不出来的。

  代码为:

  C++ Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include  "stdafx.h"
#include <opencv2/highgui/highgui.hpp>

using  namespace  cv;

int  main( int  argc, unsigned  char*  argv[])
{
        Mat  img_src;
        VideoCapture  vido_file( "tree.avi");
        for  (;;)
        {
                vido_file  >>img_src;
                imshow( "video_src",img_src); //可以事先不用新建一个窗口
                char  c=( char)waitKey( 47);
                if  (c== 27)
                {
                        break;       
                }
        }
        return  0;
}

三、opencv驱动摄像头并显示出来:

  代码为:

 

  C++ Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include  "stdafx.h"
#include <opencv2/highgui/highgui.hpp>

using  namespace  cv;

int  main( int  argc, unsigned  char*  argv[])
{
        Mat  img_src;
        VideoCapture  cam( 0);
        for  (;;)
        {
                cam  >>img_src;
                imshow( "camera",img_src); //可以事先不用新建一个窗口
                char  c=( char)waitKey( 30);
                if  (c== 27)
                {
                        break;       
                }
        }
        return  0;
}

以下的环境改为:opencv2.4.2+vs2010

四、opencv打开摄像头并对摄像头内视频进行canny边缘检测。 

  代码为:

 

  C++ Code 
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
31
32
33
34
35
36
37
// cam_test.cpp : 定义控制台应用程序的入口点。
//

#include  "stdafx.h"
#include  <opencv2/core/core.hpp>
#include  <opencv2/highgui/highgui.hpp>
#include  <opencv2/imgproc/imgproc.hpp>
#include  <iostream>

#pragma  comment(  lib,  "opencv_core242.lib"  )
#pragma  comment(  lib,  "opencv_highgui242.lib"  )
#pragma  comment(  lib,  "opencv_imgproc242.lib"  )

using  namespace  cv;
using  namespace  std;

int  main(  int  argc,  const  char  **argv  )
{

        VideoCapture  cap( 0);  // open the default camera
        if(!cap.isOpened())  // check if we succeeded
                return  - 1;
        Mat  edges;
        namedWindow( "edges", 1);
        for(;;)
        {
                Mat  frame;
                cap  >>  frame;  // get a new frame from camera
                cvtColor(frame,  edges,  CV_BGR2GRAY);
                GaussianBlur(edges,  edges,  Size( 7, 7),  1. 51. 5);
                Canny(edges,  edges,  0303);
                imshow( "edges",  edges);
                if(waitKey( 30)  >=  0break;
        }
        // the camera will be deinitialized automatically in VideoCapture destructor
        return  0;
}

你可能感兴趣的:(opencv常用的小工程)