zoukankan      html  css  js  c++  java
  • OpenCV快速上手的7个程序

      本篇文章主要介绍了四个OpenCV图像处理小程序、OpenCV操作视频和调用摄像头。本文的示例程序清单如下:

    1.1 OpenCV的测试用例:HelloOpenCV

    #include <opencv2/opencv.hpp> 
    using namespace cv; 
    
    int main()
    {
        Mat img = imread("1.jpg");
        imshow("【载入的图片】", img);
        waitKey(6000);
    }

      运行示例

      

    1.2 ShowImage

    #include <opencv2/opencv.hpp>  //头文件
    using namespace cv;  //包含cv命名空间
    
    void main()
    {
        
        Mat srcImage = imread("1.jpg");
        
        imshow("【原始图】", srcImage);
        
        waitKey(0);
    }

      运行示例:

     1.3  ImageErode

    #include <opencv2/highgui/highgui.hpp>
    #include <opencv2/imgproc/imgproc.hpp>
    
    using namespace cv;
    
    int main()
    {
        //载入原图  
        Mat srcImage = imread("1.jpg");
        //显示原图
        imshow("【原图】腐蚀操作", srcImage);
        //进行腐蚀操作 
        Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));
        Mat dstImage;
        erode(srcImage, dstImage, element);
        //显示效果图 
        imshow("【效果图】腐蚀操作", dstImage);
        waitKey(0);
    
        return 0;
    }

    运行示例:

     1.4 BlurImage

    #include "opencv2/highgui/highgui.hpp" 
    #include "opencv2/imgproc/imgproc.hpp" 
    using namespace cv;
    
    int main()
    {
        //【1】载入原始图
        Mat srcImage = imread("1.jpg");
    
        //【2】显示原始图
        imshow("均值滤波【原图】", srcImage);
    
        //【3】进行均值滤波操作
        Mat dstImage;
        blur(srcImage, dstImage, Size(7, 7));
    
        //【4】显示效果图
        imshow("均值滤波【效果图】", dstImage);
    
        waitKey(0);
    }

    运行示例:

     1.5 Canny

    #include <opencv2/opencv.hpp>
    #include<opencv2/imgproc/imgproc.hpp>
    using namespace cv;
    
    int main()
    {
        //【0】载入原始图  
        Mat srcImage = imread("1.jpg");  //工程目录下应该有一张名为1.jpg的素材图
        imshow("【原始图】Canny边缘检测", srcImage);     //显示原始图 
        Mat dstImage, edge, grayImage;    //参数定义
    
        //【1】创建与src同类型和大小的矩阵(dst)
        dstImage.create(srcImage.size(), srcImage.type());
    
        //【2】将原图像转换为灰度图像
        //此句代码的OpenCV2版为:
        //cvtColor( srcImage, grayImage, CV_BGR2GRAY );
        //此句代码的OpenCV3版为:
        cvtColor(srcImage, grayImage, COLOR_BGR2GRAY);
    
        //【3】先用使用 3x3内核来降噪
        blur(grayImage, edge, Size(3, 3));
    
        //【4】运行Canny算子
        Canny(edge, edge, 3, 9, 3);
    
        //【5】显示效果图 
        imshow("【效果图】Canny边缘检测", edge);
    
        waitKey(0);
    
        return 0;
    }

    运行示例

     1.6 PlayVideo

    #include <opencv2opencv.hpp>  
    using namespace cv;
    
    int main()
    {
        //【1】读入视频
        VideoCapture capture("1.avi");
    
        //【2】循环显示每一帧
        while (1)
        {
            Mat frame;//定义一个Mat变量,用于存储每一帧的图像
            capture >> frame;  //读取当前帧
            imshow("读取视频", frame);  //显示当前帧
            waitKey(30);  //延时30ms
        }
        return 0;
    }

    运行示例

     1.7 UseCamera

    #include <opencv2opencv.hpp>  
    using namespace cv;
    
    int main()
    {
        //【1】从摄像头读入视频
        VideoCapture capture(0);
    
        //【2】循环显示每一帧
        while (1)
        {
            Mat frame;  //定义一个Mat变量,用于存储每一帧的图像
            capture >> frame;  //读取当前帧
            imshow("读取视频", frame);  //显示当前帧
            waitKey(30);  //延时30ms
        }
        return 0;
    }

    运行示例

     


    参考文献

    [1]  毛星云.OpenCV3编程入门[M].电子工业出版社.北京.2015.2.

  • 相关阅读:
    [设计] 判断LOGO好坏的12条参考标准
    [3D] (开源)1997年世界编程大赛第一名作品
    [CSS3] 哆啦A梦告诉你目前各家浏览器对 CSS3 的支持状况(含源文件)
    [游戏] 游戏开发中常用的设计模式
    [D3D] DX10 D3D10阴影技术演示Demo
    [D3D(C#)] 创建设备
    [JS] 全世界最短的IE判定
    [游戏] 游戏中的资源管理资源高速缓存
    [游戏] 网络游戏:为什么失败
    [VC] (开源)游戏源代码列表
  • 原文地址:https://www.cnblogs.com/jianle23/p/13774280.html
Copyright © 2011-2022 走看看