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 <opencv2\opencv.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 <opencv2\opencv.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.

posted @ 2020-10-06 22:00  望星草  阅读(546)  评论(0编辑  收藏  举报