1.图像显示&图像腐蚀&图像模糊&canny边缘检测&视频操作&调用摄像头

今天是开始学习OpenCV的第一天,简单记录下,运气不错,环境配置一遍过,很舒服。主要使用简单快速上手下

显示图片

    /*1.显示图片*/

    Mat srcimg = imread("1.png");
    imshow("显示图片", srcimg);
    waitKey(0);

图片腐蚀

    /*2.显示腐蚀图片*/
    
    Mat srcimg = imread("1.png");
    imshow("原图腐蚀操作", srcimg);

    //进行腐蚀操作
    Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));
    Mat dstImage;
    erode(srcimg, dstImage, element);

    imshow("腐蚀操作", dstImage);
    waitKey(0);

图片模糊

    /*3.图像模糊*/
    Mat srcImage = imread("1.png");//载入原始图
    imshow("均值滤波[原图]", srcImage);//显示原始图
    Mat dstImage;//进行均值滤波操作
    blur(srcImage, dstImage, Size(7, 7));
    imshow("均值滤波[效果图]", dstImage);//显示效果图
    waitKey(0);

canny边缘检测

    /*4.canny边缘检测*/
    //载入原始图
    Mat srcImage = imread("1.png");
    imshow("原始图Canny 边缘检测", srcImage);
    Mat dstImage, edge, grayImage;//参数定义
    //创建与src同类型和大小的矩阵
    dstImage.create(srcImage.size(), srcImage.type());
    //将原始图像转换为灰度图像
    cvtColor(srcImage, grayImage, COLOR_BGR2GRAY);
    //先使用3x3内核来降噪
    blur(grayImage, edge, Size(3, 3));
    //运行Canny算子
    Canny(edge, edge, 3, 9, 3);
    //显示效果图
    imshow("效果图Canny边缘检测", edge);
    waitKey(0);

读取并播放视频

 

    //5.读取并播放视频
    VideoCapture capture;
    capture.open("2.mp4");
    while (1)
    {
        Mat frame;
        capture >> frame; //定义一个Mat变量,用于存放每一帧的图像
        imshow("读取视频", frame);//显示当前帧
        waitKey(30);//延时30ms
    }

调用摄像头采集图像

这个没法演示了,没有摄像头,不过和读取视频相差不大,只是把类VideoCapture对象初始化时指定内容的区别,参数为 0 就表示调用摄像头

    //6.调用摄像头采集图像
    /*调用摄像头采集图像只需要把读入视频的参数设置为0就可以了,表示调用摄像头而不是从文件中读取视频*/
    VideoCapture capture;
    capture.open(0);
    while (1)
    {
        Mat frame;
        capture >> frame; //定义一个Mat变量,用于存放每一帧的图像
        imshow("读取视频", frame);//显示当前帧
        waitKey(30);//延时30ms
    }

到底了...

猜你喜欢

转载自blog.csdn.net/sono_io/article/details/124069983